apue第七章 进程环境 笔记
来源:互联网 发布:淘宝退货售后卡怎么写 编辑:程序博客网 时间:2024/05/16 15:11
7.2 注册atexit函数
看代码:
#include <stdio.h>#include <stdlib.h>static void exit1(){ printf("%s\n", __FUNCTION__);}static void exit2(){ printf("%s\n", __FUNCTION__);}int main(){ if (atexit(exit1) != 0 || atexit(exit2) != 0){ printf("register exit faield\n"); exit(1); } printf("%s is done\n", __FUNCTION__);}
输出:
allen@allenPC:~/code/apuecode$ ./a.out
main is done
exit2
exit1
7.5环境表
每个程序都会收到一张环境表.getenv可获取:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int arg, char** argc){ if (arg < 2){ printf("usage env\n"); exit(1); } for (int i = 1; i < arg; ++i){ char* res = getenv(argc[i]); if (NULL != res){ printf("get %s env is %s\n", argc[i], res); } } exit(0);}
比如:
allen@allenPC:~/code/apuecode$ ./a.out OS TERM HOME
get TERM env is xterm
get HOME env is /home/allen
7.6 C程序的存储空间布局
程序的逻辑布局:
1)正文段: CPU执行的机器指令部分. 可共享.
2)初始化数据段:包含了程序中需要明确赋初值.
3)非初始化数据段.在程序执行之前,内核将此段中的数据初始化为0或者null. 出现在任何函数外的c声明:long sum[1000]
4)栈
5)堆
需要放在程序中的段:正文段和初始化数据段
7.7共享库
7.8内存分配
free释放的空间通常被送入可用内存池.
malloc分配的空间比要求的要大.额外的空间用来记录管理信息-分配块的长度,指向下一个可分配块的指针..
7.10 setjmp longjmp
c中goto是不能跨越函数.而上面提到的两个能.对于处理发生在深层嵌套函数里处理出错是非常有用的.
0 0
- APUE学习笔记:第七章 进程环境
- apue第七章 进程环境 笔记
- 《APUE》笔记-第七章-进程环境
- APUE笔记---第七章 进程环境
- [APUE]第七章 进程环境
- APUE第七章 进程环境
- APUE 第七章 进程环境
- old《APUE 2e》学习笔记 第七章 进程环境
- APUE学习笔记——第七章 进程环境
- apue学习笔记(第七章 进程环境)
- APUE 第七章 进程的运行环境
- APUE读书笔记-第七章 进程环境
- 《APUE》读书笔记—第七章进程环境
- APUE学习笔记5——第七章——进程环境
- APUE第七章学习笔记
- APUE第7章 UNIX进程环境 笔记
- APUE函数笔记五: 进程环境
- APUE学习笔记——进程环境
- 数学之路-python计算实战(3)-霍纳法则
- Configuring a Composite primary key or Foreign Key
- 黑马程序员——银行业务调度系统
- 虚拟机 minimal 安装增强包
- 技术人,不要总在很初级的层面上谈管理
- apue第七章 进程环境 笔记
- 如何固定执行计划
- pcap for .net
- 深入理解java多态性
- AsyncHttpClient文件上传
- 条形码类型及常见条形码介绍
- httpclient 上传图片
- The One New
- nginx中cache的设计和实现