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\n",value);
int pid;
value += 5;
printf("%d\n",value);
pid = fork( );
printf("%d\n",pid);
if (pid > 0 )
{
value += 20;
}
printf("%d\n",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)
Answer: science is the study of the world, and technology changes the world to solve problems.
Answer:
In C++:
int PrintInBinary(int num){
if (num == 0)
return 0;
else
return (num % 2 + 10 * PrintInBinary(num / 2));
}
Explanation:
This defines the PrintInBinary function
int PrintInBinary(int num){
This returns 0 is num is 0 or num has been reduced to 0
<em> if (num == 0) </em>
<em> return 0; </em>
If otherwise, see below for further explanation
<em> else
</em>
<em> return (num % 2 + 10 * PrintInBinary(num / 2));
</em>
}
----------------------------------------------------------------------------------------
num % 2 + 10 * PrintInBinary(num / 2)
The above can be split into:
num % 2 and + 10 * PrintInBinary(num / 2)
Assume num is 35.
num % 2 = 1
10 * PrintInBinary(num / 2) => 10 * PrintInBinary(17)
17 will be passed to the function (recursively).
This process will continue until num is 0