UNIX环境高级编程学习笔记系列-------4,进程环境

1,main函数

       C程序总是从main函数开始执行的,原型:

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

       argc是命令行参数数目,arfv是指向参数的各个指针所构成的数组。

2,进程终止

        进程终止的方式:

            1,main返回

            2,调用exit

            3,调用_exit或-EXIT

            4,最后一个线程从其启动例程返回

            5,从最后一个线程调用pthread_exit

            6,调用abort

            7,接到一个信号

            8,最后一个线程对取消请求做出响应

                                UNIX环境高级编程学习笔记系列-------4,进程环境_第1张图片

3,命令行参数

        当执行一个程序时,调用exec的进程可将命令行参数传递给该新程序。

                    UNIX环境高级编程学习笔记系列-------4,进程环境_第2张图片

4,环境表

       每个程序都接收到一张环境表。与参数表一样,也是一个字符指针数组,其中每个指针包含一个以null结束的C字符串地址。全局变量environ包含了该指针数组的地址:extren char **environ;

                                 UNIX环境高级编程学习笔记系列-------4,进程环境_第3张图片

5,C程序的存储空间布局

        下图为典型的存储空间安排:

                                                        UNIX环境高级编程学习笔记系列-------4,进程环境_第4张图片

6,存储空间分配

        ISO C说明了3个用于存储空间动态分配的函数:

       (1)malloc,分配指定字节数的存储区,此存储区中的初始值不确定

       (2)calloc,未指定数量指定长度的对象分配存储空间,该空间中的每一位(bit)都初始化为0

       (3)realloc,增加或减少以前分配的长度,当增加长度时,可能需要将以前分配区的内容移到另一个足够大的区域,以便在尾端提供增加的存储区,而新增区域的初始值则不确定

             UNIX环境高级编程学习笔记系列-------4,进程环境_第5张图片

 

 

 

 

 

 

 

 

你可能感兴趣的:(UNIX环境高级编程,进程环境)