《Unix高级环境编程》第七章 进程环境

本文深入探讨Unix进程环境,包括main函数的调用、进程终止方式、命令行参数传递、环境变量的使用、内存分配、setjmp与longjmp以及资源限制函数getrlimit和setrlimit的应用。详细解析了不同退出函数(_exit, _Exit, exit)的差异,介绍了如何注册自动调用的函数(atexit),并讨论了环境变量的添加、修改和删除注意事项。" 123925799,10729496,Vuex模块命名空间错误:module namespace not found,"['前端开发', 'Vue.js', 'Vuex']
摘要由CSDN通过智能技术生成

Process Environment

7-1 Introduction

在第八章介绍进程控制原语(process control primitives)之前,我们需要先研究一下进程执行的环境。

本章我们会关注:
1. main函数是如何在程序执行时被调用的
2. 命令行参数是如何传递给新进程的
3. 内存布局什么样?
4. 如何分配额外的内存
5. 进程如何使用环境变量
6. 终止进程的几种方法
7. longjmpsetjmp
8. 进程的资源限制

对于本章节知识点进行了总结,链接如下:http://blog.csdn.net/feather_wch/article/details/50725828
可用于日后复习之用

7-2 main Function

C程序从main函数开始,其原型如下:

int main(int argc, char * argv[]);

C程序是有kernel调用exec程序之一来调用的。在main函数之前存在着特殊的启动函数(start-up)。启动函数被设置为程序的开始地址。这是由link editor设置的。

启动程序的作用?

用于从kernel(内核)获得一些值,如获得了命令行参数(command-line argument)和环境(environment)

7-3 Process termination

进程终止的有几种方式:
一般的终止方式:
1. 从main return
2. 调用exit
3. 调用_Exit, _exit
4. 开始程序的最后一个线程 return
5. 在最后一个线程调用 pthread_exit

异常的终止方式:
6. 调用abort
7. 接收到信号
8. Response of the last thread to a cancellation request(11.5 and 12.7)

启动程序如果是用C编写的(大多是用汇编编写的),那么调用main的部分如下:

exit(main(argc, argv));

Exit Functions

通常终止进程的三个函数:_exit, _Exit和exit
原型如下:

#include <stdlib.h>

void exit(int status);
void _Exit(int
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值