摘要:
本章说明了进程组之间的关系——会话,它由若干个进程组组成。作业控制是当今很多 UNIX 系统所支持的功能,本章说明了它是如何由支持作业控制的 shell 实现的。在这些进程关系中也涉及了进程的控制终端 /dev/tty。所有这些进程的关系都使用了很多信号方面的功能。 阅读全文
摘要:
对在 UNIX 环境中的高级编程而言,完整地了解 UNIX 的进程控制是非常重要的。其中必须熟练掌握的只有几个函数——fork、exec 系列、_exit、wait 和 waitpid。很多应用程序都使用这些简单的函数。本章说明了 system 函数和进程会计,这也使我们能进一步了解所有这些进程控制函数。本章还说明了 exec 函数的另一种变体:解释器文件以及它们的工作方式。 阅读全文
摘要:
理解 UNIX 系统环境中 C 程序的环境是理解 UNIX 系统进程控制特性的先决条件。本章说明了一个进程是如何启动和终止的,如何向其传递参数表和环境。本章也说明了 C 程序的典型存储空间布局,以及一个进程如何动态地分配和释放存储空间。最后介绍了各种实现提供的资源限制功能。 阅读全文
摘要:
所有 UNIX 系统都使用口令文件和组文件。本章说明了读这些文件的各种函数,也介绍了阴影口令,它可以增加系统的安全性。附属组 ID 提供了一个用户同时可以参加多个组的方法。本章还介绍了大多数系统所提供的访问其他与系统有关数据文件的类似函数,讨论了几个 POSIX.1 的系统标识函数,应用程序使用它们以标识它在何种系统上运行。 阅读全文
摘要:
大多数 UNIX 应用程序都使用标准 I/O 库。本章说明了该库提供的很多函数以及某些实现细节和效率方面的考虑。标准 I/O 库使用了缓冲技术,而它正是产生很多问题、引起许多混淆的部分。 阅读全文
摘要:
本章内容围绕 stat 函数,详细介绍了 stat 结构中的每一个成员。这使我们对 UNIX 文件和目录的各个属性都有所了解。我们讨论了文件和目录在文件系统中是如何设计的以及如何使用文件系统命令空间。对文件和目录的所有属性以及对文件和目录进行操作的所有函数的全面了解,对于 UNIX 编程是非常重要的。 阅读全文
摘要:
本章说明了 UNIX 系统提供的基本 I/O 函数。在说明多个进程对同样文件进行追加写操作已经多个进程创建同一文件时,本章介绍了原子操作,也介绍了内核用来共享打开文件信息的数据结构。 阅读全文