# include <stdio.h>
# include "forkjoin.h"int main()
{
int arr1[10]={1,1,1,1,1,1,1,1,1,1};
int arr2[10]={2,2,2,2,2,2,2,2,2,2};
int id;
int iCount;
/* Copy Array-1 to Array-2 Using 2 Processes */
id=process_fork(2);
if(id==0)
{
/* Parent Process */
for(iCount=0;iCount<10;iCount=iCount+2)
{
arr2[iCount]=arr1[iCount];
}
}
else
{
/* Child Process */
for(iCount=1;iCount<10;iCount=iCount+2)
{
arr2[iCount]=arr1[iCount];
}
}
process_join(2,id);
/* Here Child Process is Completed
and We have not made Array 2 Shared So Changes made by
Child Process is not visible in Parent Process
*/
printf("\n Array 2 ... \n");
for(iCount=0;iCount<10;iCount++)
{
printf("arr2[%d] : %d\n",iCount,arr2[iCount]);
}
return 0;
}
/* Output
[divyen@localhost PP-TW1]$ ./Prog04
Array 2 ...
arr2[0] : 1
arr2[1] : 2
arr2[2] : 1
arr2[3] : 2
arr2[4] : 1
arr2[5] : 2
arr2[6] : 1
arr2[7] : 2
arr2[8] : 1
arr2[9] : 2
*/