Creating multiple process using fork() Last Updated : 09 Oct, 2017 Summarize Comments Improve Suggest changes Share Like Article Like Report Prerequisite - Introduction of fork, getpid() and getppid() Problem statement - Write a program to create one parent with three child using fork() function where each process find its Id. For example : Output :parent 28808 28809 my id is 28807 First child 0 28810 my id is 28808 Second child 28808 0 my id is 28809 third child 0 0 Explanation - Here, we had used fork() function to create four processes one Parent and three child processes. An existing process can create a new one by calling the fork( ) function. The new process created by fork() is called the child process. We are using here getpid() to get the process id In fork() the total process created is = 2^number of fork() Note - At some instance of time, it is not necessary that child process will execute first or parent process will be first allotted CPU, any process may get CPU assigned, at some quantum time. Moreover process id may differ during different executions. Code 1 - Using getpid() CPP // C++ program to demonstrate creating processes using fork() #include <unistd.h> #include <stdio.h> int main() { // Creating first child int n1 = fork(); // Creating second child. First child // also executes this line and creates // grandchild. int n2 = fork(); if (n1 > 0 && n2 > 0) { printf("parent\n"); printf("%d %d \n", n1, n2); printf(" my id is %d \n", getpid()); } else if (n1 == 0 && n2 > 0) { printf("First child\n"); printf("%d %d \n", n1, n2); printf("my id is %d \n", getpid()); } else if (n1 > 0 && n2 == 0) { printf("Second child\n"); printf("%d %d \n", n1, n2); printf("my id is %d \n", getpid()); } else { printf("third child\n"); printf("%d %d \n", n1, n2); printf(" my id is %d \n", getpid()); } return 0; } Output - parent 28808 28809 my id is 28807 First child 0 28810 my id is 28808 Second child 28808 0 my id is 28809 third child 0 0 Code 2 - Using getppid() CPP // C++ program to demonstrate creating processes using fork() #include <unistd.h> #include <stdio.h> int main() { // Creating first child int n1 = fork(); // Creating second child. First child // also executes this line and creates // grandchild. int n2 = fork(); if (n1 > 0 && n2 > 0) { printf("parent\n"); printf("%d %d \n", n1, n2); printf(" my id is %d \n", getpid()); printf(" my parentid is %d \n", getppid()); } else if (n1 == 0 && n2 > 0) { printf("First child\n"); printf("%d %d \n", n1, n2); printf("my id is %d \n", getpid()); printf(" my parentid is %d \n", getppid()); } else if (n1 > 0 && n2 == 0) { printf("second child\n"); printf("%d %d \n", n1, n2); printf("my id is %d \n", getpid()); printf(" my parentid is %d \n", getppid()); } else { printf("third child\n"); printf("%d %d \n", n1, n2); printf(" my id is %d \n", getpid()); printf(" my parentid is %d \n", getppid()); } return 0; } Output - parent 5219 5220 my id is 5217 my parentid is 5215 First child 0 5221 my id is 5219 my parentid is 1 second child 5219 0 my id is 5220 my parentid is 1 third child 0 0 my id is 5221 my parentid is 1 Comment More infoAdvertise with us P Pushpanjali chauhan Improve Article Tags : Misc C++ system-programming Practice Tags : CPPMisc Similar Reads C++ Programming Language C++ is a computer programming language developed by Bjarne Stroustrup as an extension of the C language. It is known for is fast speed, low level memory management and is often taught as first programming language. It provides:Hands-on application of different programming concepts.Similar syntax to 5 min read SQL Commands | DDL, DQL, DML, DCL and TCL Commands SQL commands are crucial for managing databases effectively. These commands are divided into categories such as Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Data Query Language (DQL), and Transaction Control Language (TCL). In this article, we will e 7 min read TCP/IP Model The TCP/IP model is a framework that is used to model the communication in a network. It is mainly a collection of network protocols and organization of these protocols in different layers for modeling the network.It has four layers, Application, Transport, Network/Internet and Network Access.While 7 min read Basics of Computer Networking A computer network is a collection of interconnected devices that share resources and information. These devices can include computers, servers, printers, and other hardware. Networks allow for the efficient exchange of data, enabling various applications such as email, file sharing, and internet br 14 min read Object Oriented Programming in C++ Object Oriented Programming - As the name suggests uses objects in programming. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc. in programming. The main aim of OOP is to bind together the data and the functions that operate on them so th 5 min read Java Programs - Java Programming Examples In this article, we will learn and prepare for Interviews using Java Programming Examples. From basic Java programs like the Fibonacci series, Prime numbers, Factorial numbers, and Palindrome numbers to advanced Java programs.Java is one of the most popular programming languages today because of its 8 min read Unified Modeling Language (UML) Diagrams Unified Modeling Language (UML) is a general-purpose modeling language. The main aim of UML is to define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used in other fields of engineering. UML is not a programming language, it is rather a visual lan 14 min read Second Largest Element in an Array Given an array of positive integers arr[] of size n, the task is to find second largest distinct element in the array.Note: If the second largest element does not exist, return -1. Examples:Input: arr[] = [12, 35, 1, 10, 34, 1]Output: 34Explanation: The largest element of the array is 35 and the sec 14 min read Introduction to Java Java is a high-level, object-oriented programming language developed by Sun Microsystems in 1995. It is platform-independent, which means we can write code once and run it anywhere using the Java Virtual Machine (JVM). Java is mostly used for building desktop applications, web applications, Android 4 min read Python Lists In Python, a list is a built-in dynamic sized array (automatically grows and shrinks). We can store all types of items (including another list) in a list. A list may contain mixed type of items, this is possible because a list mainly stores references at contiguous locations and actual items maybe s 6 min read Like