sys/wait.h


syswait.h,计算机编程语言函数,使用wait()和waitpid()函数时需要include这个 头文件

简介

编辑
使用wait()和waitpid()函数时需要include这个头文件
syswait.h syswait.h

相关函数

编辑
wait(等待子进程中断或结束) 相关函数 waitpid(),fork()
表头文件 #include #include
定义函数 pid_t wait (int * status);
waitpid(等待子进程中断或结束) 相关函数 wait,fork
表头文件 #include #include
定义函数 pid_t waitpid(pid_t pid,int * status,int options);

wait()函数说明

编辑
wait()
会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status返回,而子进程的进程识别码也会一起返回。如果不在意结束状态值,则参数status可以设成NULL。子进程的结束状态值请参考waitpid()。
返回值 如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。

wait()范例

编辑
#include#include#include#includemain(){pid_t pid;int status,i;if(fork()= =0){printf(“This is the child process .pid =%dn”,getpid());exit(5);}else{sleep(1);printf(“This is the parent process ,wait for child...n”;pid=wait(&status);i=WEXITSTATUS(status);printf(“child’s pid =%d .exit status=^dn”,pid,i);}}
执行 This is the child process.pid=1501This is the parent process .wait for child...child’s pid =1501,exit status =5

waitpid()函数说明

编辑
waitpid()
会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数status可以设成NULL。
参数pid为欲等待的子进程识别码,其他数值意义如下:pid0 等待任何子进程识别码为pid的子进程。
参数option可以为0 或下面的OR 组合WNOHANG 如果没有任何已经结束的子进程则马上返回,不予以等待。WUNTRACED 如果子进程进入暂停执行情况则马上返回,但结束状态不予以理会。
子进程的结束状态返回后存于status,底下有几个宏可判别结束情况WIFEXITED(status)如果子进程正常结束则为非0值。
WEXITSTATUS(status)取得子进程exit()返回的结束代码,一般会先用WIFEXITED 来判断是否正常结束才能使用此宏。WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为真WTERMSIG(status)取得子进程因信号而中止的信号代码,一般会先用WIFSIGNALED 来判断后才使用此宏。WIFSTOPPED(status)如果子进程处于暂停执行情况则此宏值为真。一般只有使用WUNTRACED 时才会有此情况。WSTOPSIG(status)取得引发子进程暂停的信号代码,一般会先用WIFSTOPPED 来判断后才使用此宏。
返回值 如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值