linux——wait
文章目录
- 前言
- 一、wait函数
- 二、例程
- 1.wait()
- 2.子进程退出状态
- 3.异常退出
前言
本文记录的是wait的用法
一、wait函数


二、例程
1.wait()
代码如下(示例):
#include
#include
#include
#include int main(int argc, char const *argv[])
{int i = 0, status;pid_t pid = fork();if(pid) {printf("我是父进程! 我的ID是:%d\n", getpid() );wait(&status);printf("子进程已经退出!\n");} else{printf("我是子进程! 我的ID是:%d\n", getpid() );sleep(3);}return 0;
}
结果如图所示:

子进程等待三秒后结束,然后父进程打印信息
2.子进程退出状态
代码如下(示例):
#include
#include
#include
#include
#include
int main(int argc, char const *argv[])
{int i = 0, status;pid_t pid = fork();if(pid) {printf("我是父进程! 我的ID是:%d\n", getpid() );wait(&status);printf("子进程已经退出!\n");if(WIFEXITED(status)) {printf("子进程正常退出,退出值为:%d\n" , WEXITSTATUS(status));} else if( WIFSIGNALED(status) ) {printf("子进异常退出,被信号杀死:%d\n" , WTERMSIG(status));printf("退出值为:%d\n" , WEXITSTATUS(status));}} else{printf("我是子进程! 我的ID是:%d\n", getpid() );sleep(10);exit(35);}return 0;
}
结果如图所示:

3.异常退出
代码如下(示例):
人为结束子进程
#include
#include
#include
#include
#include
int main(int argc, char const *argv[])
{int i = 0, status;pid_t pid = fork();if(pid) {printf("我是父进程! 我的ID是:%d\n", getpid() );wait(&status);printf("子进程已经退出!\n");if(WIFEXITED(status)) {printf("子进程正常退出,退出值为:%d\n" , WEXITSTATUS(status));} else if( WIFSIGNALED(status) ) {printf("子进异常退出,被信号杀死:%d\n" , WTERMSIG(status));printf("退出值为:%d\n" , WEXITSTATUS(status));}} else{printf("我是子进程! 我的ID是:%d\n", getpid() );sleep(10);exit(35);}return 0;
}
结果如图所示:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
