fork引起的问题

来源:互联网 发布:域名备案和网站备案 编辑:程序博客网 时间:2024/04/28 15:53
#include<stdio.h>#include<unistd.h>#include<stdlib.h>int main(){pid_t pid;if(pid=fork() < 0){printf("Fork Error\n");}else if(pid == 0){printf("Ppid is %d\n",getppid());sleep(5);printf("Ppid is %d\n",getppid());}else if(pid > 0){exit(0);}}

分别让其在交互状态下和非交互状态下输出,得到不同的结果:

交互状态,直接运行编译生成的可执行程序,./a.out

Ppid is 1870Ppid is 15480<间隔5秒>Ppid is 1870Ppid is 15480
非交互状态下,让其输出重定向到文件,./a.out > out,out文件中内容如下:

Ppid is 15488Ppid is 15488

需要注意的是,以上测试输出可能有很大变化,比如,执行./a.out>out后,out文件中内容还出现过如下情况:

Ppid is 1870Ppid is 1870Ppid is 15521Ppid is 1




原创粉丝点击