# Calculation in parent and child process using fork()

• Difficulty Level : Medium
• Last Updated : 13 Sep, 2021

Write a program to find sum of even numbers in parent process and sum of odd numbers in child process.

Examples:

```Input : 1, 2, 3, 4, 5

Output :
Parent process
Sum of even no. is 6
Child process
Sum of odd no. is 9 ```

Explanation: Here, we had used fork() function to create two processes one child and one parent process.

• For child process fork() returns 0 so we can calculate sum of all odd numbers in child process.
• fork() returns value greater than 0 for parent process so we can calculate sum
• for all even numbers there by just simply checking the value returned by fork().

## C++

 `// C++ program to demonstrate calculation in parent and``// child processes using fork()``#include ``#include ``using` `namespace` `std;` `// Driver code``int` `main()``{``    ``int` `a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };``    ``int` `sumOdd = 0, sumEven = 0, n, i;``    ``n = fork();` `    ``// Checking if n is not 0``    ``if` `(n > 0) {``        ``for` `(i = 0; i < 10; i++) {``            ``if` `(a[i] % 2 == 0)``                ``sumEven = sumEven + a[i];``        ``}``        ``cout << ``"Parent process \n"``;``        ``cout << ``"Sum of even no. is "` `<< sumEven << endl;``    ``}` `    ``// If n is 0 i.e. we are in child process``    ``else` `{``        ``for` `(i = 0; i < 10; i++) {``            ``if` `(a[i] % 2 != 0)``                ``sumOdd = sumOdd + a[i];``        ``}``        ``cout << ``"Child process \n"``;``        ``cout << ``"\nSum of odd no. is "` `<< sumOdd << endl;``    ``}``    ``return` `0;``}`

Output:

```Parent process
Sum of even no. is 30
Child process
Sum of odd no. is 25```

This article is contributed by Pushpanjali Chauhan. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.