Разве это не вызов из оболочки? Мне нужен вызов из С-программы.
Кстати, stat выдает три параметра, относящиеся ко времени: Access, Modify, Change. Какой из них - дата создания? Разве это не Доступ, Изменен, Изменен (?)
В системе есть и то, и то. Команда man 2 stat покажет функцию.
У меня эта команда почему-то не выполняется. Пишет, что нет страницы для нее.
The field st_atime is changed by file accesses, for example, by execve(2), mknod(2), pipe(2), utime(2) and read(2)
(of more than zero bytes). Other routines, like mmap(2), may or may not update st_atime.
Замечательно... :-
The field st_mtime is changed by file modifications, for example, by mknod(2), truncate(2), utime(2) and write(2)
(of more than zero bytes). Moreover, st_mtime of a directory is changed by the creation or deletion of files in
that directory. The st_mtime field is not changed for changes in owner, group, hard link count, or mode.
The field st_ctime is changed by writing or by setting inode information (i.e., owner, group, link count, mode,
etc.).
Как я понял, под датой создания можно понимать поле change (Изменен). Access (Доступ) - это точно не то, а Modify вроде бы и включает в себя Change, но может меняться не только из-за создания (write) файла. Хотя, опять же, write необязательно файл создает, может и просто перезаписать уже имеющийся.
В общем, надо сказать, что сложилось мнение. как-то в линуксе криво это реализовано. В той же порицаемой всеми Винде как-то понятнее с этим: есть дата создания, она не меняется, и дата изменения (вроде еще и открытия тоже есть) - и все нормально работает.
Пользователь решил продолжить мысль 18 Мая 2010, 17:31:43:
Разве это не вызов из оболочки? Мне нужен вызов из С-программы.
Кстати, stat выдает три параметра, относящиеся ко времени: Access, Modify, Change. Какой из них - дата создания? Разве это не Доступ, Изменен, Изменен (?)
В системе есть и то, и то. Команда man 2 stat покажет функцию.
The field st_atime is changed by file accesses, for example, by execve(2), mknod(2), pipe(2), utime(2) and read(2)
(of more than zero bytes). Other routines, like mmap(2), may or may not update st_atime.
The field st_mtime is changed by file modifications, for example, by mknod(2), truncate(2), utime(2) and write(2)
(of more than zero bytes). Moreover, st_mtime of a directory is changed by the creation or deletion of files in
that directory. The st_mtime field is not changed for changes in owner, group, hard link count, or mode.
The field st_ctime is changed by writing or by setting inode information (i.e., owner, group, link count, mode,
etc.).
wl В системе есть и то, и то
Вы не могли бы тогда буквально одной строкой кода показать, как ее вызвать из C-программы?
Пользователь решил продолжить мысль 18 Мая 2010, 21:34:11:
нашел в сети описание этой функции (системного вызова). Странно, при наборе
man stat
выдавалась справка по команде оболочки, а не системного вызова, при
man 2 stat
вообще ничего, гворилось, что нет справочной страницы. Почему?
В принципе, вопрос решен, на всякий случай, если кому понадобится, вот тут можно посмотреть:
http://www.opennet.ru/man.shtml?topic=stat&category=2&russian=2Благодарю всех за помощь!