20.8k views
2 votes
#include #include int main( ) { int value = 10; int pid; value += 5; pid = fork( ); if (pid > 0 ) { value += 20; } printf(value); return 0; } Select all the values that may be printed on the screen when the above program is executed?

1 Answer

2 votes

Step-by-step explanation:

To understand how this program is working let us print the variable value at different stages of the program so that we can understand how it is working.

Intitally, value=10 when it was declared.

Then we added 5 and it become value=15

then we used fork() function which creates a parent(orignal) and child(duplicate)

When fork() succeeds it returns the child pid to parent and returns 0 to the child. As you can see (pid > 0) condition is always true therefore the parent pid value becomes 35 ( 15+20) and the child pid value becomes 0.

#include <stdio.h>

#include <unistd.h>

int main( ) {

int value = 10;

printf("%d\\",value);

int pid;

value += 5;

printf("%d\\",value);

pid = fork( );

printf("%d\\",pid);

if (pid > 0 )

{

value += 20;

}

printf("%d\\",value);

return 0;

}

Output:

10 (initial value)

15 (modified value)

5343 (pid when fork is used)

35 (final modified value)

0 (child value)

15 (the parent value when fork was used)

User Saravanan I
by
4.3k points