exit(0)等价于return 0,只是多了刷新缓冲区等(友好退出)
_exit(0)或者_Exit(0)不刷新缓冲区:(直接退出,不做事后清理工作,强行退出)
上述代码输出不了hello world
//所需头文件 #include#include #include #include #include #include int main() { int status=0; int i=0; int ret=-1; pid_t pid=-1; //创建子进程 pid=fork(); if(-1 == pid) { perror("fork"); return 1; } //子进程 if(0 == pid) { for(i=0;i<5;i++) { printf("child process do thing %dn",i+1); sleep(1); } exit(10); } //父进程执行 printf("父进程等待子进程退出,回收其资源n"); ret = wait(&status);//这里父进程阻塞,若有子进程退出,则返回,若无,则等待 if(-1 == ret) { perror("wait"); return 1; } printf("父进程回收了子进程资源...n"); return 0; }
宏:
用法举例:
再次实验:
执行的时候执行发送杀死信号
没有退出的子进程则退出:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)