第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节点号可以找到对应的数据块或目录块