|
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int k=0;
int main()
{
pid_t child;
int status;
if((child=fork())==-1)
{
printf("创建子进程失败\n");
exit(1);
}
else if(child==0)
{
sleep(10);
k++;
printf("子进程中k=%d\n",k);
exit(1);
}
wait(&status);
k=k+2;
printf("父进程中k=%d\n",k);
}
执行结果是
子进程中k=1
父进程中k=2
如果把判断条件改成else if(child>0)则
运行结果是
父进程中k=2
子进程中k=1
有点晕了。
 |
|