подскажите, где описаны правила, как устанавливаются сабжи?
Скажем, имхо странно, что запись в каталог меняет и change time каталога.
Change time, по описанию, это изменения служебных данных файла, но ведь при записи
в каталог таких изменений нет?
Здравствуйте, Amouse, Вы писали:
A>подскажите, где описаны правила, как устанавливаются сабжи?
A>Скажем, имхо странно, что запись в каталог меняет и change time каталога. A>Change time, по описанию, это изменения служебных данных файла, но ведь при записи A>в каталог таких изменений нет?
Вы имеете ввиду atime, mtime и ctime структуры stat ?
И запись в каталог — Вы подразумеваете создание файла, или просто запись в существующий файл?
Здравствуйте, Amouse, Вы писали:
A>Здравствуйте, Vladimir D Belousov, Вы писали:
VDB>>Вы имеете ввиду atime, mtime и ctime структуры stat ?
A>да
VDB>>И запись в каталог — Вы подразумеваете создание файла, или просто запись в существующий файл?
A>создание файла
Тогда все верно.
Согласно документации mkdod, write и нек. другие вызовы изменяют как ctime, так и mtime.
И логически — при создании файла в каталоге, в каталог нужно внести изменения — как размер каталога изменить, так и добавить новый элемент.
Я правильно Вас понял?
Здравствуйте, Vladimir D Belousov, Вы писали:
VDB>Тогда все верно. VDB>Согласно документации mkdod, write и нек. другие вызовы изменяют как ctime, так и mtime.
а что это за документация и какой write?
VDB>И логически — при создании файла в каталоге, в каталог нужно внести изменения — как размер каталога изменить, так и добавить новый элемент.
Не логично. Добавление нового элемента в каталог, это тоже, что обычная запись для файла, т.е для этого есть modify time, change уже не причем.
Размер каталога часто не меняется при добавлении нового элемента.
Здравствуйте, Amouse, Вы писали:
A>Здравствуйте, Vladimir D Belousov, Вы писали:
A>а что это за документация и какой write?
man от stat(2)
st_mtime Time when file data last modified. Changed by the
mkdir(2), mkfifo(2), mknod(2), utimes(2), write(2) and
writev(2) system calls.
st_ctime Time when file status was last changed (inode data modifi-
cation). Changed by the chflags(2), chmod(2), chown(2),
creat(2), link(2), mkdir(2), mkfifo(2), mknod(2),
rename(2), rmdir(2), symlink(2), truncate(2), unlink(2),
utimes(2), write(2) and writev(2) system calls.
VDB>>И логически — при создании файла в каталоге, в каталог нужно внести изменения — как размер каталога изменить, так и добавить новый элемент.
A>Не логично. Добавление нового элемента в каталог, это тоже, что обычная запись для файла, т.е для этого есть modify time, change уже не причем. A>Размер каталога часто не меняется при добавлении нового элемента.
Меняется. Может быть не меняется кол-во места на диске, занимаемое файлом или каталогом, но непосредственно размер — меняется.
Так же меняется время изменения каталога.
Здравствуйте, Vladimir D Belousov, Вы писали:
VDB>man от stat(2) VDB>
VDB> st_mtime Time when file data last modified. Changed by the
VDB> mkdir(2), mkfifo(2), mknod(2), utimes(2), write(2) and
VDB> writev(2) system calls.
VDB> st_ctime Time when file status was last changed (inode data modifi-
VDB> cation). Changed by the chflags(2), chmod(2), chown(2),
VDB> creat(2), link(2), mkdir(2), mkfifo(2), mknod(2),
VDB> rename(2), rmdir(2), symlink(2), truncate(2), unlink(2),
VDB> utimes(2), write(2) and writev(2) system calls.
Здравствуйте, Amouse, Вы писали:
A>Здравствуйте, Amouse, Вы писали:
A>>а линку можно?
A>в моей Suse man еще короче — никаких вызовов для ctime не перечислено
Здравствуйте, Amouse, Вы писали:
A>подскажите, где описаны правила, как устанавливаются сабжи?
A>Скажем, имхо странно, что запись в каталог меняет и change time каталога. A>Change time, по описанию, это изменения служебных данных файла, но ведь при записи A>в каталог таких изменений нет?
Ну если объяснить очень кратко и на пальцах, То каталог — это тот же файл.
А его содержимым является "список" (на inode's) содержащихся в нем файлов.
Естественно, для того, чтобы изменить содержимое каталога, надо внести изменения в файл каталога