引用the structure for information about a file inode :
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 */
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 */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of blocks allocated */
我真的只是在寻找任何类型的答案。我注意到所有字段都以 st_
开头,并且在 Internet 上找不到很好的解释。
最佳答案
这可以追溯到很久以前,一直到第一个 C 版本。他们没有用于结构成员的单独符号表,名称被添加到全局符号表中。导致明显令人讨厌的全局 namespace 污染。解决方法与您今天在枚举上使用的方法相同,在它们前面加上几个字母以避免名称冲突。
这是一种历史记录。当您看到具有这些成员名称的结构时,您就知道它是旧的。
关于c - 为什么 `struct stat` 中的字段名为 st_something?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325870/