Временная метка inode ядра Linux

Я хотел знать, какая из следующих записей inode содержит время создания файла и время последнего изменения файла?

Спасибо


person user3367692    schedule 06.03.2014    source источник
comment
Какая из следующих записей? Кажется, вы что-то упустили из своего вопроса.   -  person    schedule 06.03.2014
comment
i_atime, i_mtime и i_ctime. что из следующего говорит о времени создания и модификации...   -  person user3367692    schedule 06.03.2014


Ответы (2)


Прочтите страницу руководства для 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 */
       };
person Community    schedule 06.03.2014

Индекс структуры содержит 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.

Если вам нужно изменить значения, требуется дополнительная работа в соответствии с этим доказательством концепции:

https://github.com/linuxthor/inode-ctime/blob/master/inode-ctime.c

person JOgden    schedule 07.03.2014