- 论坛徽章:
- 0
|
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
pid_t pid1,pid2,pid3;
int a=1,b=1,c=1;
pid1=fork();
pid2=fork();
pid3=fork();
switch(pid1)
{
case 0:
printf("Child process 1 is running.\n");
a+=4;
printf("Value a in Child process 1 is:%d\n",a);
break;
case -1:
perror("Child process 1 is failed.\n");
exit(1);
default:
printf("Value a in Parent process is:%d\n",a);
break;
}
switch(pid2)
{
case 0:
printf("Child process 2 is runing.\n");
b+=4;
printf("Value b in Child process 2 is:%d\n",b);
break;
case -1:
perror("Child process 1 is failed.\n");
exit(1);
default:
printf("Value b in Parent process is:%d\n",b);
break;
}
switch(pid3)
{
case 0:
printf("Child process 3 is running.\n");
c+=4;
printf("Value c in Child process 3 is:%d\n",c);
break;
case -1:
perror("Child process 3 is failed.\n");
exit(1);
default:
printf("Value c in Parent process is:%d\n",c);
break;
}
return 0;
}
这个是完整的代码
下面是编译过程和结果
[root@LinuxFzb tmp]# vi fork5.c
[root@LinuxFzb tmp]# gcc -o fork5 fork5.c
[root@LinuxFzb tmp]# ./fork5
Child process 1 is running.
Value a in Child process 1 is:5
Child process 2 is runing.
Value b in Child process 2 is:5
Child process 3 is running.
Value c in Child process 3 is:5
Child process 1 is running.
Value a in Child process 1 is:5
Child process 2 is runing.
Value b in Child process 2 is:5
Value c in Parent process is:1
Child process 1 is running.
Value a in Child process 1 is:5
Child process 1 is running.
Value a in Child process 1 is:5
Value b in Parent process is:1
Value c in Parent process is:1
Value a in Parent process is:1
Child process 2 is runing.
Value b in Child process 2 is:5
Child process 3 is running.
Value c in Child process 3 is:5
Value a in Parent process is:1
Child process 2 is runing.
Value b in Child process 2 is:5
Value c in Parent process is:1
Value a in Parent process is:1
Value b in Parent process is:1
Child process 3 is running.
Value c in Child process 3 is:5
Value a in Parent process is:1
Value b in Parent process is:1
Value c in Parent process is:1
[root@LinuxFzb tmp]# Value b in Parent process is:1
Child process 3 is running.
Value c in Child process 3 is:5 |
|