UNIX系统中C语言使用之文件与目录详解
1. 目录基础
在UNIX系统里,目录是文件系统的重要组成部分。程序的当前目录是操作的一个重要参考点。特殊地,“/”代表根目录,空文件名(如 /a/b/)指向其前面名称对应的目录,两个连续的斜杠(“//”)会被解释为单个斜杠。
每个目录通常至少有两个条目:
- “.” 指向目录自身,程序可通过打开 “.” 文件来读取当前目录,而无需知道其具体名称。
- “..” 指向当前目录的父目录。程序可以通过不断将目录更改为 “..” 从当前目录移动到根目录。在根目录下,“..” 是指向根目录的循环链接。
2. 特殊文件
特殊文件是UNIX文件系统独特的一部分。每个I/O设备(如磁盘驱动器、磁带驱动器、终端等)都与至少一个特殊文件关联。对于用户程序而言,特殊文件看起来和其他普通文件并无二致,但对其进行读写请求时,会激活关联的设备。例如,若程序想在磁带上写入数据,可打开文件 /dev/mt,对该文件的读写请求会使磁带移动,并以合适的密度读写数据。按照长期以来的UNIX惯例,特殊文件的条目存于 /dev 目录,但操作系统并不强制要求这样。
3. 可移动文件系统
整个文件系统层次结构并非必须存储在同一设备上,不过文件系统的根始终位于固定位置,以便在系统启动时能被定位。mount 系统调用(及相关用户命令)有两个参数:
- 一个特殊文件的名称,其关联的存储卷(如磁盘包)具有独立文件系统的结构,包含自身的目录层次结构。
- 一个现有(普通)文件或目录的名称。
该调用的作用是用特殊文件上存储的子树替换目录树的一个叶子节点。此后,对(之前
超级会员免费看
订阅专栏 解锁全文
5455

被折叠的 条评论
为什么被折叠?



