首页 > 代码库 > 目录与文件属性——《Unix/Linux编程实践教程》读书笔记
目录与文件属性——《Unix/Linux编程实践教程》读书笔记
1、ls产生一个文件名的列表,它大致是这样工作的:
open directory +-> read entry - end of dir? -+ |__ display file info | close directory <--------------+
3、man 3 readdir
#include <sys/types.h> #include <dirent.h> DIR *opendir(const char *dir_name); struct dirent *readdir(DIR *dir_name); int readdir_r(DIR *dir_ptr, struct dirent *entry, struct dirent **result); long telldir(DIR *dir_ptr); void seekdir(DIR *dir_ptr, long location); void rewinddir(DIR *dir_ptr); int closedir(DIR *dir_ptr);
main() opendir while (readdir) print d_name closedir
man 2 stat
#include <sys/stat.h> int res = stat(const char *path, struct stat *buf); /* return 0 for success, -1 for error */
struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of 512B blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ };
7、SUID 位告诉内核,运行这个程序的时候认为是由文件所有者在运行这个程序;SGID位告诉内核,运行这个程序的时候认为文件所属的组在运行这个程序;sticky位对于文件,在早期用于交换(swap)技术,对于目录而言被设计用来存放临时文件,如/tmp。
ls -l sample -rwsr-sr-t 1 root root 2345 Jul 24 00:45 sample
#include <sys/types.h> #include <sys/stat.h> int res = chmod(const char *path, mod_t mode); int res = chmod(int fd, mode_t mode); /* On success, 0 is returned. On error, -1 is returned and errno is set appropriately */
#include <unistd.h> int chown(const char *path, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); int lchown(const char *path, uid_t owner, gid_t group); /* On success, 0 is returned. On error, -1 is returned and errno is set appropriately */
man utime
man 2 rename
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。