上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 59 下一页
摘要: 一个文件的访问和修改时间可以用utime函数更改。#include int utime( const char *pathname, const struct utimbuf *times );返回值:若成功则返回0,若出错则返回-1此函数所使用的数据结构是:struct utimbuf { time_t actime; /* access time */ time_t modtime; /* modification time */}此结构中的两个时间值是日历时间。这是自1970年1月1日00:00:00以来国际标准时间所经过的秒数。此函数的操作以及执行它所要求的特权... 阅读全文
posted @ 2014-01-03 16:38 ITtecman 阅读(3280) 评论(0) 推荐(0) 编辑
摘要: 本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。对每个文件保持有三个时间字段,它们的意义见表4-10: 表4-10 与每个文件相关的三个时间值字段说明例子ls(1)选项st_atime文件数据的最后访问时间read-ust_mtime文件数据的最后修改时间write默认st_ctimei节点状态的最后更改时间chmod、chown-c注意修改时间(st_mtime)和更改状态时间(st_ctime)之间的区别。修改时间是文件内容最后一次被修改的时间。更改状态时间是该文件的i节点最后一次被修改的时间。很多 阅读全文
posted @ 2014-01-03 14:59 ITtecman 阅读(424) 评论(0) 推荐(0) 编辑
摘要: symlink函数创建一个符号链接。 #include int symlink( const char *actualpath, const char *sympath );返回值:若成功则返回0,若出错则返回-1该函数创建了一个指向actualpath的新目录项sympath,在创建此符号链接时,并不要求actualpath已经存在。并且,actualpath和sympath并不需要位于... 阅读全文
posted @ 2014-01-03 14:24 ITtecman 阅读(825) 评论(0) 推荐(0) 编辑
摘要: 本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。符号链接是指向一个文件的间接指针,它与硬链接有所不同,硬链接直接指向文件的i节点。引入符号链接的原因是为了避开硬链接的一些限制:硬链接通常要求链接和文件位于同一文件系统中。只有超级用户才能创建指向目录的硬链接。对符号链接以及它指向何种对象并无任何文件系统限制,任何用户都可创建指向目录的符号链接。符号链接一般用于将一个文件或整个目录结构移到系统中的另一个位置。当使用以名字引用文件(而不是用打开文件的描述符引用文件)的函数时,应当了解该函数是否处理符号链接。也 阅读全文
posted @ 2014-01-03 14:14 ITtecman 阅读(2188) 评论(0) 推荐(0) 编辑
摘要: 任何一个文件可以有多个目录项指向其i节点。创建一个指向现有文件的链接的方法是使用link函数。#include int link( const char *existingpath, const char *newpath );返回值:若成功返回0,若出错返回-1此函数创建一个新目录项newpath,它引用现有的文件existingpath。如若newpath已经存在,则返回出错。只创建newpath中的最后一个分量,路径中的其他部分应当已经存在。创建新目录项以及增加链接计数应当是个原子操作。虽然POSIX.1允许实现支持跨文件系统的链接,但是大多数实现要求这两个路径名在同一个文件系统中。如果 阅读全文
posted @ 2014-01-03 11:08 ITtecman 阅读(4193) 评论(0) 推荐(0) 编辑
摘要: 我们可以把一个磁盘分成一个或多个分区。每个分区可以包含一个文件系统(见图4-1)。 图4-1 磁盘、分区和文件系统i节点(i-node)是固定长度的记录项,它包含有关文件的大部分信息。如果更仔细地观察一个柱面组的i节点和数据块部分,则可以看到图4-2中所示的情况。注意图4-2中的下列各点:在图中有两个目录项指向同一i节点。每个i节点中都有一个链接计数,其值是指向该i节点的目录项数。只有当链接计数减少至0时,才可删除该文件(也就是说可以释放该文件占用的数据块)。这就是为什么“解除对一个文件的链接”操作并不总是意味着“释放该文件占用的磁盘块”的原因。这也是为什么删除一个目录项的函数被称为unlin 阅读全文
posted @ 2014-01-03 09:22 ITtecman 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 有时我们需要在文件尾端截去一些数据以缩短文件。将一个文件清空为0是一个特例,在打开文件时使用O_TRUNC标志可以做到这一点。 #include int truncate( const char *pathname, off_t length );int ftruncate( int filedes, off_t length );两个函数的返回值:若成功则返回0, 若出错则返回-1这两个... 阅读全文
posted @ 2014-01-02 22:25 ITtecman 阅读(603) 评论(0) 推荐(0) 编辑
摘要: stat结构成员st_size表示以字节为单位的文件长度。此字段只对普通文件、目录文件和符号链接有意义。 对于普通文件,其文件长度可以是0,在读这种文件时,将得到文件结束(end-of-file)指示。 对于目录,文件长度通常是一个数(例如16或512)的倍数。 对于符号链接,文件长度是文件名中的实际字节数。例如: lrwxrwxrwx 1 root root 8 01-02 05:... 阅读全文
posted @ 2014-01-02 22:15 ITtecman 阅读(1174) 评论(0) 推荐(0) 编辑
摘要: 下面几个chown函数可用于更改文件的用户ID和组ID。 #include int chown( const char *pathname, uid_t owner, gid_t group );int fchown( int filedes, uid_t owner, gid_t group );int lchown( const char *pathname, uid_t owner,... 阅读全文
posted @ 2014-01-02 21:38 ITtecman 阅读(3050) 评论(0) 推荐(0) 编辑
摘要: 在UNIX尚未使用分页技术的早期版本中,S_ISVTX位被称为粘住位(sticky bit)。如果一个可执行程序文件的这一位被设置了,那么在该程序第一次被执行并结束时,其程序正文部分的一个副本仍被保存在交换区。(程序的正文部分是机器指令部分)。这使得下次执行该程序时能较快地将其装入内存中。其原因是:交换区占用连续磁盘空间,可将它视为连续文件,而且一个程序的正文部分在交换区中也是连续存放的,而在一般... 阅读全文
posted @ 2014-01-02 20:29 ITtecman 阅读(621) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 59 下一页