《UNIX环境高级编程》概览:系统调用、shell与文件I/O

需积分: 0 4 下载量 66 浏览量 更新于2024-09-09 收藏 53KB DOC 举报
【UNIX基础知识】 UNIX操作系统的核心是内核,它通过系统调用来提供与硬件和外部设备的交互。这些系统调用构成了操作系统的基础服务,包括文件管理、进程控制、内存管理和网络通信等。在内核之上,有shell层,它是用户与操作系统交互的界面,例如Bourne shell (sh)、Bourne Again shell (bash)、C shell (csh)、Korn shell (ksh)以及TENEX C shell (tcsh),它们提供了命令行解析和脚本执行功能。此外,还有库函数层,这些函数为应用程序提供了方便的接口,使得程序员无需直接调用系统调用也能完成许多任务。 在UNIX中,文件名的命名规则有特定的限制,文件名不能包含斜线(/)和空字符(null),因为斜线用于分隔路径名的各个部分,而空字符在许多编程语言中被视为非法字符。文件描述符是系统用来标识打开文件的关键标识,它是一个非负整数,通常从0开始,用于进程进行读写操作。 当进程接收到信号时,它可以采取三种策略来应对:忽略信号,让信号不做任何处理;按照系统预设的方式响应,比如终止进程;或者注册自定义的信号处理函数,在信号触发时执行特定的代码。 【UNIX标准及其实现】 UNIX标准主要包括ISOC、POSIX和Single UNIX Specification。POSIX标准定义了操作系统接口,但不规定具体的实现,因此在不同UNIX系统中,虽然接口相同,但具体实现可能有所差异。Single UNIX Specification是POSIX.1标准的扩展,增加了更多的接口和功能。为了确保程序的可移植性,开发者需要关注编译时和运行时的限制,例如ISO C标准中的限制在<limits.h>头文件中定义,而POSIX.1则涉及多类限制,包括最小不变值、不变值、可增长值、运行时不变值和路径名可变值。 【文件I/O】 UNIX中的文件输入输出操作是通过系统调用或库函数实现的。文件描述符在文件I/O中扮演着关键角色,它关联到一个打开的文件,允许进行读、写、追加等操作。文件操作还包括文件创建、打开、关闭、重命名和删除等。同时,标准输入、输出和错误流(stdin、stdout和stderr)通常与文件描述符0、1和2相对应,方便进行进程间的通信和错误报告。 这只是《UNIX环境高级编程》这本书中的一部分内容,全书涵盖了从基本的UNIX概念到复杂的进程间通信、网络编程等多个方面,对于深入理解和开发UNIX系统上的应用程序具有极大的价值。