wait与waitpid的使用与区别

无论是要使用wait还是waitpid都要先引入头文件

#include <sys/types.h>
#include <sys/wait.h>

waitpid:

pid_t  waitpid(pid_t pid,int *statusp,int options)

参数:

pid:pid>0:只等待进程ID等于pid的进程,不管其他已经有多少子进程结束,只要指定的子    进程还没结束,waitpid就会一直等下去,直到相应进程结束。
        pid=0:等待同一个进程组中的任何子进程,子进程如果加入了别的进程组,waitpid不会理睬它
        pid=-1:等待任何子进程结束
        pid<-1:等待指定进程组中的任何子进程,这个子进程组ID等于pid的绝对值

statusp:如果是一个空值,表示父进程不关心子进程的状态;如果不是空指针,则终止状态保存在statusp指向的单元
option:设置默认行为
         WNOHANG:挂起调用进程,直到有子进程结束,返回值为零
         WUNTRACED:挂起调用进程的执行,直到等待集合中的一个进程变成已终止或被停止。返回已终止的子进程ID
         WCONTINUED:挂起调用进程的执行,直到一个正在运行的进程终止或收到SIGCONT信号

wait:

pid_t wait(int *statusp)

调用wait(&status)等价于调用waitpid(-1,&status,0)。相当于只要有子进程结束就返回
如果wait的参数是一个数字,用法与sleep相似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值