02 2014 档案
摘要:C程序在内存中由以下几部分组成:正文段:这是由CPU执行的机器指令部分,通常情况下,正文段是可以共享的,子进程和父进程会共同维护内存中的一个副本;另外,正文段一般也是只读的,以防止程序由于意外而修改其本身;同时其中包含了只读的常量,比如字符串常量等。初始化数据段,即数据段:它包含了程序中已初始化的全局变量,属于静态分配内存;非初始化数据段,即bss段:这个名称来源于早期汇编程序的一个操作符,意思是“block started by symbol(由符号开始的块)”,属于静态内存分配。在程序开始执行之前,内核将此段初始化为0;栈:自动变量以及每次函数调用时所需保存的信息都存放在此段中。借此,有了
阅读全文
摘要:一、main函数:先从程序的执行开始谈起,C程序总是从main函数开始执行,当内核执行C程序时(使用了一个exec函数),在调用main函数前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设置的,而连接编辑器则由C编译器调用。启动例程从内核取得命令行参数和环境变量,然后为调用main函数做好安排。二、进程终止:有8种方式使进程终止,其中5种为正常终止,它们是:从main返回。调用exit。调用_exit或_Exit.最后一个线程从启动例程返回。最后一个线程调用pthread_exit。异常终止有3种方式,它们是:调用abort。接到一个信号并终止。
阅读全文
摘要:Linux将一切事物都看作文件,即便硬件设备在文件系统中也有相应的条目,用于与设备驱动程序进行通信的工具在过去就已经十分的常见,例如,hdparm可以用来配置一些磁盘参数,ifconfig可以报告网络统计信息。近年来,倾向于提供更一致的方式来访问驱动程序的信息。事实上,这种一致的方式甚至延伸到包括与Linux内核的各种元素的通信。Linux提供了一个特殊的文件系统procfs,它通常以/proc目录的形式呈现。该目录中包含了许多特殊文件用来对驱动程序和内核信息进行更高层次的访问只要应用程序有正确的访问权限,它们就可以通过读写这些文件来获得信息或设置参数。/proc目录中的文件会随系统的不同而不
阅读全文

浙公网安备 33010602011771号