Stat (Unix)stat() è una chiamata di sistema Unix che restituisce dati utili sull'inode di un file. La semantica della chiamata stat() varia fra i diversi sistemi operativi. Il comando Unix ls la utilizza per raccogliere varie informazioni, tra le quali:
La funzione stat() e la struttura statLo standard POSIX dichiara nel file di libreria int stat (const char *filename, struct stat *buf);
Definisce inoltre la struttura dati dev_t st_dev; /* ID del dispositivo contenente file */
ino_t st_ino; /* numero dell'inode */
mode_t st_mode; /* protezione */
nlink_t st_nlink; /* numero di hard links */
uid_t st_uid; /* user ID del proprietario */
gid_t st_gid; /* group ID del proprietario */
dev_t st_rdev; /* ID del dispositivo (se il file speciale) */
off_t st_size; /* dimensione totale, in byte */
blksize_t st_blksize; /* dimensione dei blocchi di I/O del filesystem */
blkcnt_t st_blocks; /* numero di blocchi assegnati */
time_t st_atime; /* tempo dell'ultimo accesso */
time_t st_mtime; /* tempo dell'ultima modifica */
time_t st_ctime; /* tempo dell'ultimo cambiamento */
Funzioni correlatelstat() int lstat (const char *filename, struct stat *buf);
fstat() int fstat (int filedesc, struct stat *buf);
ctime, mtime, atimeSi noti che ctime non rappresenta la creazione del file, bensì la modifica all'inode del file. Un'operazione di scrittura modifica mtime, ctime e atime. Un cambiamento di permessi dei file cambia ctime. La lettura di un file cambia atime. Un file system montato con l'opzione noatime non aggiorna atime se vengono effettuate chiamate di lettura. Un file system montato con l'opzione relatime prevede aggiornamenti solo se il valore precedente di atime è più vecchio rispetto a quello di mtime o ctime. A differenza di atime e mtime, ctime non può essere impostato con la funzione Collegamenti esterni
|