《UNIX环境高级编程》(第三版)阅读笔记---2018-5-12
dup()用来复制参数fd 所指的文件描述词, 并将它返回. 此新的文件描述词和参数oldfd 指的是同一个文件, 共享所有的锁定、读写位置和各项权限或旗标. 例如, 当利用lseek()对某个文件描述词作用时, 另一个文件描述词的读写位置也会随着改变. 不过, 文件描述词之间并不共享close-on-exec 旗标。
UNIX文件类型:普通文件(regular file)、目录文件(directory file)、块特殊文件(block special file)、字特殊文件(character special file)、FIFO、套接字(socket)、符号链接(symbolic link)。
可用S_ISREG()、S_ISDIR()等宏判断文件类型。
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
与一个进程相关的ID:
实际用户ID
实际组ID 我们实际是谁
有效用户ID
有效组ID
附属组ID 用于文件访问权限检查
保存的设置用户ID
保存的设置组ID 由exec函数保存
当我们用名字打开任一类型的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前文件目录都应具有执行权限(对于目录执行权限位常被称作搜索位)。