摘要: 文件长度可通过 stat 那一系列的函数来获取长度保存在 struct stat 结构的 st_size 字段中对于符号链接文件 , 文件长度就是其指向的文件的相对路径长度 如 lib --> user/lib 文件长度就是 7 文件中的空洞 可以通过lseek函数形成 。 标准中 空洞 不要求占用存储空间, 读文件时如若读到空洞部分,空洞部分的值为 0 .文件的截短 文件的截短可用以下函数 truncate() 函数和 ftruncate()函数 这俩函数都可以将文件截短为长度为 length 的文件 打开文件时使用 O_TRUNC 标志可使文件被截短为 0 文件系统 硬链接... 阅读全文
posted @ 2013-05-30 23:34 wowk 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 类似与stat函数,也有三个函数用于改变文件的拥有者 chown() fchown() lchown()lchown()不会跟随符号链接 , 而其他两个函数会跟随符号链接 阅读全文
posted @ 2013-05-30 22:34 wowk 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 粘住位 : 以前用于可执行文件,当可执行文件该位被设置后,在操作系统重启之前,即使程序执行结束,程序的代码部分仍将会被保存在系统的交换区中。如今由于虚拟文件系统的使用,该特性已经不再使用了。现在粘住位仅仅作用于 目录 文件。被设置了粘住位的目录文件具有如下特性: 仅当 某一用户对目录具有写权限 并且 满足下列任一条件时,用户能删除目录下的文件 1 用户是超级用户 2 用户拥有该文件 3 用户拥有该目录 阅读全文
posted @ 2013-05-30 22:20 wowk 阅读(174) 评论(0) 推荐(0) 编辑
摘要: chmod() 和 fchmod() 函数用于改变文件的访问模式位mode的位S_ISUID //有效ID 的 设置位S_ISGID //有效组ID 的设置位S_ISVTX //粘住位S_IRUSR //拥有用户可读S_IWUSR //拥有用户可写S_IXUSR //拥有用户可执行S_IRGRP //用户组可读S_IWGRP //用户组可写S_IXGRP //用户组可执行S_IROTH //其他用户可读S_IWOTH //其他用户可写S_IXOTH //其他用户可执行 1 //-rw-rw-r-- 1.c 先前的文件访问标志 2 3 #include<sys/stat... 阅读全文
posted @ 2013-05-30 22:03 wowk 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 当用 open() 或 creat() 创建新文件时 , 新文件的 用户ID 设置为 创建文件进程的 有效用户 ID。而组ID , POSIX.1允许选择下列之一作为新文件的组ID: 1、进程的有效组ID 2、新文件所在目录的 组IDaccess函数 int access(const char *pathname, int mode); 所在的头文件为 <unistd.h> access函数以进程有效用户ID 和有效组ID为基础 , 测试 实际用户 对一个文件的访问权限\ access() 检查调用进程是否有权访问指定的文件。如果文件是一个符号链接的话,则跟随符号链接。 ... 阅读全文
posted @ 2013-05-30 19:53 wowk 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 文件的访问权限有9位 : -xxx-xxx-xxx--从左到右分别是 ----文件所有者权限---文件所在组用户权限---其他用户权限----权限:xxx 三个位分别为 -读-写-执行- 当某位为1时,表示有权限,为0 时,则表示无权限 例:-rwxr-xr-x 文件所有者权限为 : rwx (读 写 执行) 文件所在组用户权限:r-x (读 执行) 其他用户权限:r-x (执行)文件的权限存放在 struct stat 结构中 的 st_mode 字段中。可以用以下的的常量来测试用户的权限文件所有者 :S_IRUSR S_IWUSR S_IXUSR文件组... 阅读全文
posted @ 2013-05-30 17:53 wowk 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 用户 ID 和 组 ID 注意:以下的概念通常是跟进程相关的 文件所有者ID 和 文件所有者组ID 这两个id可通过获取文件stat来获取 struct stat 结构中的 st_uid 和 st_gid 成员真好就对应这两个id 实际用户ID 和 实际组ID : int getuid(); 获取用户ID int getgid(); 获取实际组ID 这俩ID 指出执行当前进程的是谁 有效用户ID 、 有效用户组ID 和 附加组ID: int geteuid(); 获取有效用户ID... 阅读全文
posted @ 2013-05-30 16:48 wowk 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 文件类型1、普通文件:除了可执行文件,其他的文件对操作系统来说都是无格式的。2、目录文件:包含了其他文件的名字 和 指向这些文件的信息的指针的文件。3、块特殊文件:这种文件提供了对设备(例如磁盘)的带缓冲的访问。每次访问以固定长度进行。4、字符特殊文件:这种文件提供对设备的不带缓冲的访问,每次访问的长度可变。 系统中的所有设备要么是字符特殊文件 要么是 块特殊文件5、FIFO : 这种文件用于进程间的通信,也可以称之为命名管道6、套接字 : 这种文件类型用于网络通信 , 也可以用于本机上的进程通信( linux上编译的时候要定义 _GNU_SOURCE宏 )7、符号链接:这种类型的文件指向.. 阅读全文
posted @ 2013-05-30 12:12 wowk 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 所在的头文件 <sys/stat.h>struct stat{ mode_t st_mode; /*文件的访问模式*/ ino_t st_ino; /*i节点的信息*/ dev_t st_dev; /*设备号*/ dev_t st_rdev; /*特殊文件的设备号*/ nlink_t st_nlink; /*硬链接接数*/ uid_t st_uid; /*文件所有者的用户ID*/ gid_t st_gid; /*文件所有者的组ID*/ off_t st_size; /*普通文件的大小*/ time_t st_atime; /*文... 阅读全文
posted @ 2013-05-30 11:37 wowk 阅读(294) 评论(0) 推荐(0) 编辑