首页 > 代码库 > 第4章文件和目录总结

第4章文件和目录总结

1 sys/stat头文件中定义了stat、fstat、lstat函数

2 struct stat 结构

struct stat{        mode_t          st_mode;        ino_t           st_ino;        dev_t           st_dev;        dev_t           st_rdev;        nlink_t         st_nlink;        uid_t           st_uid;        gid_t           st_gid;        off_t           st_size;        time_t          st_atime;        time_t          st_mtime;        time_t          st_ctime;        blksize_t       st_blksize;        blkcnt_t        st_blocks;};

3 sys/stat定义的宏

 判断文件类型:S_ISREG() S_ISDIR() S_ISCHR() S_ISBLK() S_ISFIFO() S_ISLNK() S_ISSOCK()参数是stat.st_mode

 判断IPC类型的宏:S_TYPEISMQ() S_TYPEISSEM() S_TYPEISSHM() 参数是指向stat的指针

4 文件设置用户ID位和设置组ID位

 文件的设置用户ID位和设置组ID位如果被设置,则执行该文件时,进程的有效用户ID和有效组ID将被设置为文件的所有者ID和组ID

 stat.st_mode中记录了文件的设置用户ID位于设置组ID位情况,通过stat.st_mode和常量S_ISUID/S_ISGID的与可以判断是否设置该位

5 粘住位

 最初是为了使某个程序在交换区保存一个正文部分的副本以便程序下次运行时较快装入内存

 现在设置了粘住位的目录,只有特定权限的用户才可以对目录下的文件进行删除或更名等操作

6 文件系统

 磁盘--分区(文件系统:自举块、超级块、柱面组)-- 柱面组(超级块副本、配置信息,i节点图、块位图、i节点、数据块

 目录块包含所含文件的i节点号和文件名,通过i节点号可以找到对应的数据块或目录块 

第4章文件和目录总结