lienhua342014-10-051 进程控制三部曲概述UNIX 系统提供了 fork、exec、exit 和 wait 等基本的进程控制原语。通过这些进程控制原语,我们即可完成对进程创建、执行和终止等基本操作。进程的控制可以划分为三部曲,? 第一部:fork 创建新进程。? 第二部:exec ...
分类:
其他好文 时间:
2014-10-05 22:34:29
阅读次数:
342
lienhua342014-10-051 main 函数是如何被调用的?在编译 C 程序时,C 编译器调用链接器在生成的目标可执行程序文件中,设置一个特殊的启动例程为程序的起始地址。当内核执行 C 程序时,在调用 main 前先调用这个特殊的启动例程,该启动例程从内核取得命令行参数和环境变量值。2 ...
分类:
其他好文 时间:
2014-10-05 16:29:08
阅读次数:
266
lienhua342014-10-031 环境表和环境指针在每个进程启动时,都会接到一张环境表。环境表是一个字符指针数组,其中每个指针包含一个以 null 结束的 C 字符串的地址。全局变量environ 则包含了该指针数组的地址,extern char **environ;例如,图 1 显示了包含...
分类:
其他好文 时间:
2014-10-03 23:16:15
阅读次数:
294
lienhua342014-10-021 进程的终止方式进程的终止方式有 8 种,其中 5 种为正常终止,它们是1. 从 main 返回。2. 调用 exit。3. 调用_exit 或_Exit。4. 最后一个线程从其启动例程返回。5. 最后一个线程调用pthread_exit。另外三种为异常终止方...
分类:
其他好文 时间:
2014-10-02 23:13:13
阅读次数:
243
lienhua342014-10-01ISO C 标准 I/O 库提供了个两个函数 tmpnam 和 tmpfile 以帮助创建临时文件,#include char *tmpnam(char *ptr);返回值:指向唯一路径名的指针tmpnam 函数产生一个与现有文件名不同的一个有效路径名字符串。每...
分类:
其他好文 时间:
2014-10-01 17:05:01
阅读次数:
150
lienhua342014-09-291 标准 I/O 流之前学习的都是不带缓冲的 I/O 操作函数,直接针对文件描述符的,每调用一次函数可能都会触发一次系统调用,单次调用可能比较快捷。但是,对于需要频繁进行 I/O 操作的程序,频繁触发系统调用产生的消耗太大。标准 I/O 库提供了带缓冲的 I/O...
分类:
其他好文 时间:
2014-10-01 13:56:41
阅读次数:
206
姓名:黄可嵩年龄:20星座:摩羯座学院:北京航空航天大学计算机学院专业能力:熟练掌握c语言、java语言、verilog语言,较为了解c#语言并有实战经验,c++了解但未实战,了解javascript、html、jsp等相关技术,参与实验室的项目研究。对操作系统有一定的了解,略懂unix环境编程。热...
分类:
其他好文 时间:
2014-09-25 00:56:57
阅读次数:
335
lienhua342014-09-181 引言在 UNIX 系统中,目录是一种特殊的文件类型。我们可以使用 open 函数来打开目录,获取文件描述符,然后调用 stat 函数来获取目录的属性信息,但是我们却不能够使用 read 函数来读取目录内容。例如,下面例子所示,#include #includ...
分类:
其他好文 时间:
2014-09-19 22:17:06
阅读次数:
281
lienhua342014-09-161 文件的时间每个文件都有三个时间字段,如表 1 所示。表 1: 文件的三个时间字段说明字段st_atime文件数据的最后访问时间st_mtime文件数据的最后修改时间st_ctimei 节点状态的最后更改时间最后修改时间是文件内容最后一次被修改的时间。更改状态...
分类:
其他好文 时间:
2014-09-16 23:23:21
阅读次数:
353
lienhua342014-09-151 文件系统数据结构UNIX 文件系统通过 i 节点来存储文件的信息。如图 1 所示为一个磁盘柱面上的 i 节点和数据块示意图。其中 i 节点是一个固定长度的记录项,它包含了有关文件的大部分信息。数据块用于存储文件的实际内容。每个文件的 i 节点会记录该文件的内...
分类:
其他好文 时间:
2014-09-15 22:29:59
阅读次数:
286