Open In App

Create Processes with Fork in C++

Last Updated : 24 Nov, 2022
Comments
Improve
Suggest changes
4 Likes
Like
Report

fork() is a system call that creates a child process from the parent process. Whenever we call fork() from the parent program, a child process is created that has the exact copy of the address space. The important thing to remember is it shares the copy of the address space, not the copy itself. 

Syntax:

#include<unistd.h>
pid_t fork(void);

Significance

  • Both the parent and child processes are two separate threads that execute in different address space
  • Threads are similar to the process except that they share the address space
  • fork function can run concurrently in the same program or can run an executable from the file system
  • It helps to distinguish parent and child processes using pid. It returns 0 for the child process and a positive integer for the parent

The following example demonstrates a multiprocessing environment. fork() call has no/null arguments and returns in both processes. In the parent process, the return id (pid) is that of a child process. if that fails, -1 is returned in the parent 

Example:


Output
printed from parent process 33
printed from child process 34

Create Multiple Processes using a fork

When a parent forks a child, there are two processes, parent and child. But when a child creates another child, the number increases in the power of 2. For example, when there are two forks( ) calls, n=2 and the total number of processes is 2^2 =4. 

Example: 


Output
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks

The number of times our output statement is executed is the number of times the child process is created. Here in our example, n =3, so total process = 2^3 = 8. So there will be 8 lines in the output. Here total child process = 2^n - 1 = 8-1 = 7 (since one of them will be a parent process).


Output
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks
GeeksforGeeks

Next Article
Practice Tags :

Similar Reads