wait()系统调用分别演示在父子进程
Posted lhyzdd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wait()系统调用分别演示在父子进程相关的知识,希望对你有一定的参考价值。
废话不多说开代码
在父进程调用wait()
#include<stdio.h> #include<unistd.h> #include<sys/wait.h> int main(int argc,char *argv[]){ int rc=fork(); if(rc==0){ printf("i am child pid=%d ",(int)getpid()); }else{ int wc=wait(NULL); printf("i am father wc=%d",wc); } return 0; } [root@localhost codec5]# ./t5 i am child pid=3243 i am father wc=3243[root@localhost codec5]# cat t5.c
在父进程调用 成功返回子进程的id号
#include<stdio.h> #include<unistd.h> #include<sys/wait.h> int main(int argc,char *argv[]){ /*int rc=fork(); if(rc==0){ printf("i am child pid=%d ",(int)getpid()); }else{ */ int wc=wait(NULL); printf("i am father wc=%d",wc); return 0; } [root@localhost codec5]# ./t5 i am father wc=-1
在父进程调用 wait 失败返回 -1
在子进程里调用wait()
由于子进程并没有创建再创建子进程所以返回值是-1
#include<stdio.h> #include<unistd.h> #include<sys/wait.h> int main(int argc,char *argv[]){ int rc=fork(); if(rc==0){ int wc=wait(NULL); printf("i am child pid=%d,wc=%d ",(int)getpid(),wc); }else{ printf("i am father "); } return 0; } [root@localhost codec5]# ./t5 i am father [root@localhost codec5]# i am child pid=3337,wc=-1
以上是关于wait()系统调用分别演示在父子进程的主要内容,如果未能解决你的问题,请参考以下文章