apue 8-3 演示不同的exit值
来源:互联网 发布:java怎么发音 编辑:程序博客网 时间:2024/06/06 12:36
// 演示不同的exit值
#include "apue.h"
#include <sys/wait.h>
void pr_exit(int status)
{
//若为正常种植子进程返回的状态,则为真
if(WIFEXITED(status))
printf("normal termination, exit status = %d\n",
WEXITSTATUS(status)); //执行WEXITSTATUS 取子进程传递给exit _exit _Exit参数的低八位
else if (WIFSIGNALED(status))// 若为异常终止放回的状态
printf("abnoraml termination, signal number = %d%s\n",
WTERMSIG(status),// 取使子进程终止的信号编号
#ifdef WCOREDUMP
WCOREDUMP(status) ? "(core file generated)" : ""); // 若已产生终止进程的core文件,则它返回为真
#else
"");
#endif
else if(WIFSTOPPED(status))//若为当前暂停子进程的返回状态,则为真
printf("child stopped, signal number = %d\n",
WSTOPSIG(status));// 取得使子进程暂停的信号编号
}
int main(void)
{
pid_t pid;
int status;
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
exit(7); //子进程
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
abort(); // 产生SIGABRT
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
status /= 0;
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
exit(0);
}
#include "apue.h"
#include <sys/wait.h>
void pr_exit(int status)
{
//若为正常种植子进程返回的状态,则为真
if(WIFEXITED(status))
printf("normal termination, exit status = %d\n",
WEXITSTATUS(status)); //执行WEXITSTATUS 取子进程传递给exit _exit _Exit参数的低八位
else if (WIFSIGNALED(status))// 若为异常终止放回的状态
printf("abnoraml termination, signal number = %d%s\n",
WTERMSIG(status),// 取使子进程终止的信号编号
#ifdef WCOREDUMP
WCOREDUMP(status) ? "(core file generated)" : ""); // 若已产生终止进程的core文件,则它返回为真
#else
"");
#endif
else if(WIFSTOPPED(status))//若为当前暂停子进程的返回状态,则为真
printf("child stopped, signal number = %d\n",
WSTOPSIG(status));// 取得使子进程暂停的信号编号
}
int main(void)
{
pid_t pid;
int status;
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
exit(7); //子进程
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
abort(); // 产生SIGABRT
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid == 0)
status /= 0;
if(wait(&status) != pid)
err_sys("wait error");
pr_exit(status);
exit(0);
}
0 0
- apue 8-3 演示不同的exit值
- 《Unix环境高级编程》:演示不同的exit值
- exit的不同值
- [APUE读书笔记] 有关exit 和_exit区别的比较
- apue学习:exit()和_exit()与return()的区别
- 3种不同的ContextMenu右键菜单演示
- exit、_exit、函数与return的不同
- 演示DataSet类不同状态的操作
- 各种不同演示的图片滚动
- 注意System.exit(0);位置产生的不同的效果。
- apue(8)
- 演示字符集不同导致插入,查询产生乱码的过程
- 2.演示各种不同的鼠标交互模式
- 演示不同隔离级别下的并发问题
- OwlCarousel演示10种不同的调用方法
- Chart.js演示7种不同的统计图
- 该实例演示了 onmousemove, onmouseenter 和 onmouseover 的不同。
- jqueryrotate演示7种不同的旋转效果
- 仿iPhone的AssistiveTouch 悬浮辅助球工具
- “用最有效率的方法算出2乘以8等於几?”
- 关于职场的思考
- git操作保存(转)
- 学习笔记——IO流
- apue 8-3 演示不同的exit值
- vc api 串口
- apue 8-5调用fork两次以避免僵死进程
- 表单提交原理
- 【Ruby on Rails】Install rjb on Ubuntu
- 四核网络机顶盒芯片局势分析(开放市场):rk3128将会成为四核主流
- Ubuntu PHP环境搭建记录
- 河南男子原地旋转14小时 创基尼斯新纪录
- 【线性扫描】题型总结:最大积连续序列,str2int,2sum, 4sum,reverse word, 链表操作, 蛇形访问, 最大蓄水池,直方图最大矩形