wait和waitpid函数
来源:互联网 发布:淘宝店刷钻是真的吗 编辑:程序博客网 时间:2024/05/29 10:27
一、wait函数
代码:
<pre name="code" class="cpp">#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>int main(){pid_t id = fork();if(id == 0){printf("child:pid:%d,ppid:%d\n",getpid(),getppid());sleep(10);exit(3);}else{printf("This is a father\n");int status = 0;pid_t dead_id = wait(&status);//父进程等待子进程退出,即使父进程先运行完,也会等待子进程运行完if(dead_id == -1){perror("error");}else{printf("dead_id:%d\n",dead_id);printf("child exit code:%d\n",(status>>8)&0xff);//printf("child exit code:%d\n",WEXITSTATUS(status));printf("child get signal:%d\n",status&0xff);//printf("child get signal:%d\n",WIFEXITED(status));}}return 0;}
运行结果:
二、wait函数
代码:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>int main(){pid_t id = fork();if(id == 0){printf("child:pid:%d,ppid:%d\n",getpid(),getppid());sleep(10);exit(3);}else{printf("This is a father\n");int status = 0;pid_t dead_id = waitpid(id,&status,0);//父进程等待子进程退出if(dead_id == -1){perror("error");}else{printf("dead_id:%d\n",dead_id);printf("child exit code:%d\n",(status>>8)&0xff);//printf("child exit code:%d\n",WEXITSTATUS(status));printf("child get signal:%d\n",status&0xff);//printf("child get signal:%d\n",WIFEXITED(status));}}return 0;}运行结果:
三、总结:
wait提供的是阻塞版本
waiptpid提供了wait没有提供的三个功能:
1. waitpid可等待一个特定的进程
2. waitpid提供了一个wait的非阻塞版本
3. waitpid支持作业控制
两者返回值:成功返回被等待进程pid,失败返回-1
0 0
- wait 和waitpid函数
- wait和waitpid函数
- wait() 和waitpid() 函数
- wait和waitpid函数
- wait和waitpid函数
- wait和waitpid函数
- wait和waitpid函数
- wait()和waitpid()函数
- 函数wait和waitpid
- wait和waitpid函数
- wait和waitpid函数
- wait和waitpid函数
- wait和waitpid函数
- wait函数和waitpid函数
- wait函数和waitpid函数
- 详解wait和waitpid函数
- wait,waitpid和exec函数
- wait,waitpid和exec函数
- c/c++ cin>> cout<< scanf() printf() 返回值
- Class类文件结构分析
- Codeforces 373C:Counting Kangaroos is Fun(二分+贪心)
- 浅谈操作系统对内存的管理
- HDU1847之SG值
- wait和waitpid函数
- 第4课 Go数组Array和切片Slice
- MySQL读写分离介绍
- 【例题】【拓扑排序】NKOJ 3731 wjj的排列序列
- android开发仿ios的UIScrollView
- IllegalStateException异常处理
- (23)HTML标签详解之<frameset><frame><iframe><noframes>
- Java源码-简单的绘图板
- HDU1846之巴什博弈