ATRIBUTS. GENERALITATSJa sabem què són els atributs d'un fitxer: tota aquella informació que emmagatzema el seu inode. Per accedir als atributs d'un fitxer, primer cal conéixer un struct que serveix per a recollir-los. És l'struct stat i el trobarem definit al fitxer /usr/include/bits/stat.h. Un resum de la seva definició és aquest:
Pel que fa als tipus de les dades, no pararem atenció si no és imprescindible. Tot seguit, encara que tenim un comentari que ho explica, detallarem alguns dels atributs d'aquest struct. Hem de recordar que són les dades associades a algun arxiu. st_ino:
Número d'inode.
Si volem els permisos especials, podem fer un AND de bits amb S_ISUID pel bit setuid, S_ISGID pel setgid o S_ISVTX per a l'sticky bit, mentre que si volem saber els permisos ordinaris, disposem d'altres constants simbòliques:
st_nlink:
Nombre d'enllaços durs al fitxer. Aquestes tres darreres dates estan en segons a partir de l'1 de gener de 1970. Si les volem en nanosegons, cal fer ús dels tres camps homòlegs de tipus struc timespec: struct timespec Caldrà utilitzar les funcions de time.h (per exemple localtime) per traduir aquesta dada en un data intel·ligible. Un cop analitzat l'struct stat, vegem quines són les funcions que ens poden retornar aquestes dades:
La diferència entre stat i fstat és que fstat utilitza un fitxer obert prèviament. Pel que fa a lstat, serveix per accedir als inodes dels enllaços simbòlics (si féssim servir alguna de les altres, accediria al del fitxer al qual apunten). Com és de suposar, si tot va bé, aquestes funcions omplen el buffer apuntat per apbuffer amb les dades del fitxer que se li passi, cas en que retornaran 0. Si hi ha problemes, retornen -1 i errno contindrà el codi de l'errada que s'hagi produït. El següent programa mira d'extreure algunes de les dades associades a un fitxer: ![]() Millora aquest programa fent-ne un que es digui informa i que accepti arguments per la línia de comandes. |
Autor: Lluís València López
Aquesta obra està subjecta a una Llicència
de Creative Commons.