我想知道以下哪个inode条目包含创建文件的时间和上次修改文件的时间?
由于
答案 0 :(得分:0)
阅读stat(2)的手册页。这是直接的:
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 file system 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 */
};
答案 1 :(得分:0)
struct inode包含i_ctime
(创建)和i_mtime
(修改)。
如果您在内核空间并且需要为给定路径获取这些值,则过程如下:
声明struct path
,然后使用路径名称调用kern_path
来填充结构,这样您就可以访问struct dentry
,而struct inode
就是path->dentry->d_inode
。所以struct inode
。
获得inode->ctime.tv_sec
后,只需访问inode->ctime.tv_nsec
/ {{1}}即可。
如果您需要修改这些值,则需要根据此概念证明进行一些额外的工作:
https://github.com/linuxthor/inode-ctime/blob/master/inode-ctime.c