为你推荐

文件和目录之link、unlink、remove和rename函数

任何一个文件可以有多个目录项指向其i节点。创建一个指向现有文件的链接的方法是使用link函数。#include<unistd.h>intlink(constchar*existingpath,constchar*newpath);返回值:若成功返回0,若出错返回-1此函数创建一个新目录项newpath,它引...

文件和目录之文件系统

我们可以把一个磁盘分成一个或多个分区。每个分区可以包含一个文件系统(见图4-1)。                    ...
代码星球·2021-02-21

文件和目录之文件截短

有时我们需要在文件尾端截去一些数据以缩短文件。将一个文件清空为0是一个特例,在打开文件时使用O_TRUNC标志可以做到这一点。#include<unistd.h>inttruncate(constchar*pathname,off_tlength);intftruncate(intfiledes,off_t...
代码星球·2021-02-21

文件和目录之文件长度

stat结构成员st_size表示以字节为单位的文件长度。此字段只对普通文件、目录文件和符号链接有意义。对于普通文件,其文件长度可以是0,在读这种文件时,将得到文件结束(end-of-file)指示。对于目录,文件长度通常是一个数(例如16或512)的倍数。对于符号链接,文件长度是文件名中的实际字节数。例如:lrwxr...
代码星球·2021-02-21

文件和目录之粘住位

在UNIX尚未使用分页技术的早期版本中,S_ISVTX位被称为粘住位(stickybit)。如果一个可执行程序文件的这一位被设置了,那么在该程序第一次被执行并结束时,其程序正文部分的一个副本仍被保存在交换区。(程序的正文部分是机器指令部分)。这使得下次执行该程序时能较快地将其装入内存中。其原因是:交换区占用连续磁盘空间...
代码星球·2021-02-21

文件和目录之chown、fchown和lchown函数

下面几个chown函数可用于更改文件的用户ID和组ID。#include<unistd.h>intchown(constchar*pathname,uid_towner,gid_tgroup);intfchown(intfiledes,uid_towner,gid_tgroup);intlchown(con...

文件和目录之umask函数

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。umask函数为进程设置文件模式创建屏蔽字,并返回以前的值。(这是少数几个没有出错返回函数中的一个。)#include<sys/stat.h>mode_tumask(m...
代码星球·2021-02-21

文件和目录之chmod和fchmod函数

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。这两个函数使我们可以更改现有文件的访问权限:#include<sys/stat.h>intchmod(constchar*pathname,mode_tmode);in...

文件和目录之access函数

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。当用open函数打开一个文件时,内核以进程的有效用户ID和有效组ID为基础执行其访问权限测试。有时,进程也希望按其实际用户ID和实际组ID来测试其访问能力。例如当一个进程使用设置用...
代码星球·2021-02-21

文件和目录之文件访问权限

st_mode值也包含了针对文件的访问权限位。所有文件类型(目录文件、字符特殊文件等)都有访问权限(accesspermission)。每个文件有9个访问权限位,可将它们分成三类,见表4-5:表4-59个访问权限位,取自<sys/stat.h>st_mode屏蔽意义S_IRUSR用户-读S_IWUSR用户-...
代码星球·2021-02-21

文件和目录之新文件和目录的所有权

首先需要明确的是,新目录的所有权规则与新文件所有权规则相同。新文件的用户ID设置为进程的有效用户ID。关于组ID,POSIX.1允许实现选择下列之一作为新文件的组ID。(1)新文件的组ID可以是进程的有效组ID。(2)新文件的组ID可以是它所在目录的组ID。使用POSIX.1所允许的第二个选项(继承目录的组ID)使得在...

文件和目录之设置用户ID和设置组ID

与一个进程相关联的ID有6个或更多,它们如表4-4所示:表4-4与每个进程相关联的用户ID和组ID实际用户ID                 &nb...

文件和目录之文件类型

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。UNIX系统的大多数文件是普通文件或目录,但是也有另外一些文件类型。文件类型包括如下几种:(1)普通文件(regularfile)。这是最常见的文件类型,这种文件包含了某种形式的数...
代码星球·2021-02-21

文件和目录之stat、fstat和lstat函数

#include<sys/stat.h>intstat(constchar*restrictpathname,structstat*restrictbuf);intfstat(intfiledes,structstat*buf);intlstat(constchar*restrictpathname,str...

带缓冲I/O和不带缓冲I/O的区别与联系

转自:http://blog.csdn.net/lmh12506/article/details/6803847首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用。系统内核对磁盘的读写都会提供一个块缓冲,当用write函数对其写数据时,直接调用系统调用,将数据写入到块...
代码星球·2021-02-21