Mailinglisten-Archive |
Norbert Pfeiffer wrote:
> Dies wuerde bedeuten, dass die 'change time' den Zeugungszeitpunkt
> anzeigt, falls nicht nachtraeglich jemand die Rechte aendert ?
/usr/include/linux/ext2_fs.h:
214 /*
215 * Structure of an inode on the disk
216 */
217 struct ext2_inode {
218 __u16 i_mode; /* File mode */
219 __u16 i_uid; /* Owner Uid */
220 __u32 i_size; /* Size in bytes */
221 __u32 i_atime; /* Access time */
222 __u32 i_ctime; /* Creation time */
223 __u32 i_mtime; /* Modification time */
224 __u32 i_dtime; /* Deletion Time */
225 __u16 i_gid; /* Group Id */
226 __u16 i_links_count; /* Links count */
227 __u32 i_blocks; /* Blocks count */
228 __u32 i_flags; /* File flags */
...
240 __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
241 __u32 i_version; /* File version (for NFS) */
242 __u32 i_file_acl; /* File ACL */
243 __u32 i_dir_acl; /* Directory ACL */
...
Eigenschaften einer Datei sind (in Linux) also mode, uid (Owner),
Größe, gid (Gruppe), Link Count, Flags (chattr-Flags) und erweiterte
Zugriffsrechte.
Wenn Du genau wissen möchtest, unter welchen Bedingungen genau was
aktualisiert wird, dann mußt Du in /usr/src/linux/fs und /usr/src/linux/fs/ext2
einmal nach ctime suchen. Da bekommt man vergleichsweise schnell den
Überblick, was was passiert.
Ein Beispiel:
kk_(at)_land:/usr/src/linux/fs/ext2 > grep ctime *
file.c: /* POSIX: mtime/ctime may not change for 0 count */
file.c: inode->i_ctime = inode->i_mtime = CURRENT_TIME;
Und in file.c dann:
154 static ssize_t ext2_file_write (struct file * filp, const char * buf,
155 size_t count, loff_t *ppos)
156 {
...
308 inode->i_ctime = inode->i_mtime = CURRENT_TIME;
...
Wenn also in eine Datei geschrieben wird, wird die ctime und die
mtime aktualisiert (womit dann Deine Bemerkung oben auch gleich
entkräftet wird: Es reicht, an eine Datei anzuhängen oder sie
sonstwie zu beschreiben und die ctime ändert sich).
Wenn man die ganzen i_ctime = CURRENT_TIME durchgeht, bekommt man
so eine vollständige Liste der Bedingungen, unter denen die ctime
geändert wird.
Kristian
--
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)
php::bar PHP Wiki - Listenarchive