您的位置:首页 > 编程语言 > C语言/C++

进程的环境

2015-08-01 08:12 330 查看
当执行C语言程序时,在到main函数之前,会先调用一个特殊的启动历程,可执行文件会先跳到启动历程的地址,从内核中调用参数与环境,为调用main函数做好准备。exit,与_EXIT,_exit函数可用于退出函数,其都返回终止状态,atexit函数可登记错误处理函数,main函数调用完后,登记的函数可以执行,且是按登记的顺序倒序执行,同一个函数被调用多次就执行多次。

内核使程序执行的唯一方法为调用一个exec函数,进程自愿终止的唯一方法是显式或隐式(通过调用exit)调用_exit与_EXIT。进程也可非自愿地由一个信号终止。每个程序都产生一张环境表,是一张指针数组表,由**environ指向该表,该表中的表项都指向环境字符串。环境由name=value这样的字符串组成,可通过getenv函数通过名字得到相应的环境值,可用putenv,setenv,unsetenv来加入,修改,取消相应的环境变量。C程序由以下几部分组成,即正文,初始化数据段,未初始化数据段,栈以及堆,命令行参数和环境变量,依次地址增加。共享库通过动态链接可有效降低文件的大小。malloc,calloc,realloc可用来分配储存空间,

2函数setjmp与longjmp可以跨越函数进行跳转,但调用这两个函数后,包含setjmp的函数储存在寄存器中的值会回滚。getrlimit与serrlmit可以用来获得与修改一个进程的资源限制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内核 c语言