首页 > 系统相关 >《UNIX环境高级编程》第7-8章 进程环境和进程控制

《UNIX环境高级编程》第7-8章 进程环境和进程控制

时间:2022-09-30 10:55:23浏览次数:80  
标签:调用 函数 环境 终止 UNIX exit https 进程

1. 进程终止

有八种方式使进程终止。其中5种是正常,它们是:

从main函数返回
调用exit
调用_exit或_Exit
最后一个线程从其启动例程返回
从最后一个线程调用pthread_exit

异常终止有三种方式:
调用abort
收到一个信号
最后一个线程对取消请求做出响应

1.1 退出函数

以下三个函数用于正常终止一个程序。其中_exit和_Exit是系统调用,立即进入内核;exit则先执行一些清理工作,然后返回内核

void _exit(int status);
void _Exit(int status);
void exit(int status);

exit函数总是执行标准I/O库的清理关闭操作,对于所有打开的流调用fclose函数,这会造成输出缓冲中的所有数据被写(冲洗)到文件上。
这三个退出函数都有一个参数,即终止状态(或退出状态)。main函数返回一个整形值与用该值调用exit是等价的。于是在main函数中exit(0); 等价于return 0;

Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码
在 Unix 和 Linux 系统中,程序可以在执行终止后传递值给其父进程,这个值被称为退出码(exit code)或退出状态(exit status)。在 POSIX 系统中,惯例做法是当程序成功执行时传递 0 ,当程序执行失败时传递 1 或比 1 大的值。
echo $? 可以查看程序运行的终止码,如果main函数没有指定return 0;或者exit(0);,程序返回的终止码是随机的

fork exec之后如何回收进程

https://www.jianshu.com/p/7ba4ab937c54

共享内存与存储映射(mmap)

https://www.cnblogs.com/huangfuyuan/p/9476951.html

阻塞态占用CPU吗

https://blog.csdn.net/weixin_44844089/article/details/115655642

sleep 进程挂起

https://blog.csdn.net/fly__chen/article/details/53175301
https://blog.csdn.net/qimi123456/article/details/52225726

标签:调用,函数,环境,终止,UNIX,exit,https,进程
From: https://www.cnblogs.com/kongweisi/p/16716024.html

相关文章