首页 技术 正文
技术 2022年11月20日
0 收藏 534 点赞 2,823 浏览 1165 个字

1.等待回收的两个函数wait()和waitpid()函数

  1.1 wait(int *status)的用法:阻塞函数,等待任意一个子进程的返回。

    *wait(NULL):对子进程的结束状态不关心;

    *wait(status)  可以通过statu查看子进程的结束状态。

  int statu;

  wait(&statu);

  if(WIFEXITED(statu)){      //正常退出
       printf(“正常结束code:%d\n”,WEXITSTATUS(statu));//code状态码用于表示成功与否
    }else if(WIFSIGNALED(statu)){//接收信号退出
       printf(“异常结束signo:%d\n”,WTERMSIG(statu));
    }

   

2.waitpid()的用法

  pid_t waitpid(pid_t pid, int *status,int options);

参数:.pid == -1 等待任一子进程。
     .pid > 0 等待进程号为pid的进程返回
     .pid == 0 等待任何一个组id和父进程组id相同的进程的返回
     .pid < -1 等待任何一个进程的组id号和参数pid绝对值相同的进程

 options:(可以多个条件一起用 |)

   WNOHANG     return immediately if no child has exited.

WUNTRACED   also return if a child has  stopped  (but  not  traced  via
                   ptrace(2)).   Status for traced children which have stopped
                   is provided even if this option is not specified.

WCONTINUED  also return if a stopped child has been resumed by deliveryof SIGCONT.

对status状态的操作:
   .WIFEXITED(status)若子进程为正常终止,则为真。
   对于这种情况可执行WEXITSTATUS(status)求得终止码。

.WIFSIGNALED(status) 若为异常终止子进程,则为真(接到一个不捕捉的信号)。
   对于这种情况,可执行WTERMSIG(status)取使子进程终止的信号编号。
   另外某些实现定义宏:WCOREDUMP(status)若已产生终止进程的core文件,则它返回真
 
   .WIFSTOPPED(status) 若为当前暂停子进程的返回的状态,则为真。
   对于这种情况,可执行WSTOPSIG(status)取使子进程暂停的信号编号

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898