stat (Unix)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

stat () este un apel de sistem Unix care returnează date utile despre inodul unui fișier . Semantica apelului stat () variază între diferite sisteme de operare.

Comanda Unix ls o folosește pentru a colecta diverse informații, inclusiv:

  • mtime : ora ultimei modificări ( ls -l )
  • ctime : ora ultimei schimbări de stare ( ls -lc )
  • atime : ora ultimului acces ( ls -lu )

Funcția stat () și structura stat

Standardul POSIX declară funcția stat() în fișierul bibliotecii sys/stat.h :

 int stat ( const char * nume de fișier , struct stat * buf );

De asemenea, definește struct stat date struct stat , care conține următoarele atribute:

 dev_t st_dev ; / * ID-ul dispozitivului care conține fișiere * / 
 ino_t st_ino ; / * numărul inodului * / 
 mode_t st_mode ; / * protecție * / 
 nlink_t st_nlink ; / * numărul de legături dure * / 
 uid_t st_uid; / * ID utilizator proprietar * / 
 gid_t st_gid; / * ID proprietar grup * / 
 dev_t st_rdev ; / * ID dispozitiv (dacă este un fișier special) * / 
 off_t st_size ; / * dimensiunea totală, în octeți * / 
 blksize_t st_blksize ; / * dimensiunea blocului I / O al sistemului de fișiere * / 
 blkcnt_t st_blocks ; / * numărul de blocuri atribuite * / 
 time_t st_atime ; / * ora ultimului acces * / 
 time_t st_mtime ; / * ora ultimei modificări * / 
 time_t st_ctime ; / * ora ultimei modificări * /

Funcții conexe

lstat ()

 int lstat ( const char * nume de fișier , struct stat * buf );

lstat() este o funcție de bibliotecă care recuperează starea unui fișier. Este identic cu stat() , cu excepția cazului în care fișierul este o legătură simbolică : în acest caz, se returnează informații despre legătura în sine și nu despre fișierul la care este legat.

fstat ()

 int fstat ( int filedesc , struct stat * buf );

fstat() este o funcție de bibliotecă care recuperează starea unui fișier. Este identic cu stat() , cu excepția faptului că folosește un descriptor de fișiere în locul numelui pentru a identifica fișierul.

ctime, mtime, atime

Rețineți că ctime nu reprezintă crearea fișierului, ci modificarea inodului fișierului.

O operație de scriere modifică mtime , ctime și atime . O modificare a permisiunilor fișierului se modifică ctime . Citirea unui fișier se schimbă simultan .

Un sistem de fișiere montat cu opțiunea noatime nu actualizează atime în cazul în care se efectuează apeluri de citire. Un sistem de fișiere montat cu opțiunea relatime așteaptă actualizări numai dacă vechea valoare a atime este mai veche decât cea a mtime sau ctime .

Spre deosebire de atime și mtime , ctime nu poate fi setat cu funcția utime() . Singura modalitate de a seta o valoare arbitrară este prin schimbarea ceasului sistemului.

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT