unix编程(三)进程环境
来源:互联网 发布:淘宝网怎么下载 编辑:程序博客网 时间:2024/05/21 14:40
main函数
当内核执行c程序时,使用一个exec函数,在调用main函数之前先调用了一个特殊的启动例程。这个例程为程序的起始地址。启动例程从内核中取得命令行参数和环境变量值。
启动例程调用了main函数,然后退出。启动例程的代码一般用汇编,但是用c代码表示的话就是如下意思:
代码可以理解为:exit(main(argc,argc));
退出函数:
exit
_Exit
_exit
这里exit总是会执行一些I/O的清理关闭工作,对所有打开流调用fclose函数,这就使缓存区冲洗了。
函数atexit
一个进程可以登记32个函数,这些函数在exit自动调用,这些函数被称为终止处理程序。
#include <stdlib.h>
int atexit(void (*func)(void));
exit调用这些函数与它们登记顺序相反,并且相同函数登记多次,也会调用多次。
环境表
每个程序都接受到一张环境表,环境表示一个字符指针数组
extern char **environ;
具体可以使用如下函数获取所需要的环境变量
#include <stdlib.h>
char * getenv(const char *name);
函数setjmp和longjmp
这两个函数可以跳转函数,跳出当前函数栈。
setjmp和longjmp这两个函数对于处理在很深层嵌套的函数出错情况很有用。
具体使用还是看高级环境编程的书吧,有一点要注意,跳出当前函数栈,去另一个函数栈,它的自动变量要相当注意,一般使用volatile或者staic或者全局的变量,才能是变量保持不变。
函数getrlimit和setrlimit
获取/设置进程的资源,比如进程存储空间最大数等
1 0
- unix编程(三)进程环境
- UNIX环境高级编程——进程(三)
- 《UNIX环境高级编程》(进程环境)
- Unix环境编程-进程环境
- Unix环境高级编程—进程控制(三)
- Unix编程(一)进程环境
- 《Unix环境高级编程》 总结 (三)
- UNIX环境高级编程---- 进程
- Unix 环境编程: 进程控制
- Unix环境高级编程学习笔记(四) 进程环境
- unix环境高级编程笔记(1)-----进程环境
- UNIX环境高级编程(七)进程环境
- UNIX环境高级编程(第7章 进程环境)
- UNIX环境高级编程学习笔记(八)进程环境
- unix环境高级编程-进程环境(2)
- Unix环境多线程编程(三)
- unix环境高级编程-7-进程环境
- Unix环境编程之进程环境
- 写论文第一天:熟悉MATLAB操作
- 树和二叉树
- org.apache.spark.examples.streaming.StreamingExamples Scala 版本 无Java版本
- CodeForces 9D How many trees?
- 网络服务器开发总结
- unix编程(三)进程环境
- ls命令
- oracle sql优化过程
- Android SDK 安装笔记
- 机房水题欢乐赛 2016-04-20 上午
- linux crash在动态库中,通过map查找crash位置
- asp.net之extjs
- hdu 5671 Matrix(矩阵行列交换)
- 第九周实践-阅读程序,写出程序运行结果并理解(1)