Linux文件操作:打开、读写与权限管理
1. 文件打开与截断
若文件存在且为常规文件,同时给定的标志允许写入,文件将被截断为零长度。不过,在FIFO或终端设备上使用 O_TRUNC 会被忽略,在其他文件类型上使用则未定义。指定 O_TRUNC 和 O_RDONLY 同样未定义,因为截断文件需要写入权限。
示例代码如下:
int fd;
fd = open ("/home/teach/pearl", O_WRONLY | O_TRUNC);
if (fd == -1)
/* error */
此代码尝试以写入模式打开文件 /home/teach/pearl ,若文件存在则截断为零长度。由于未指定 O_CREAT 标志,若文件不存在,调用将失败。
2. 新文件的所有者与所属组
- 所有者 :新文件的所有者用户ID(uid)是创建该文件的进程的有效用户ID。
- 所属组 :确定所属组更为复杂。默认情况下,文件的组ID(gid)会设置为创建该文件的进程的有效组ID,这是System V的行为,也是大多数Linux系统的标准操作方式。不过,BSD定义了自己的行为,即文件的组ID会设置为其父目录的组ID。在Linux上,可通过挂载时的选项实现此行为;若文件的父目录设置了setgid位,默认也会
超级会员免费看
订阅专栏 解锁全文

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



