aaaaaaah scusami carissimo! Il fatto è che non essendo sicuro (o meglio: non ricordando) che tu fossi tu sono andato sul banale... ^^" la demenza senile incalza... :|
Comunque guarda le informazioni sui permessi ti vengono date dal campo st_mode della struct stat che non è altro che una OR dei bit dei permessi, è spiegato tutto qui:
http://mirko.lilik.it/gapil/gapilsu76.html
(che è una pagina del gapil tra l'altro, che noi conosciamo bene)
In pratica ti conviene stampare il campo st_mode come esadecimale (visto che in ottale non si può) e convertirlo poi in binario come sappiamo fare (potresti farlo anche col numero in decimale ma in base 16 è più semplice).
Se ad esempio hai questo numero
81ff
che in binario è
1000000111111111
in pratica gli ultimi 3 bit rappresentano l'ultima tripla rwx della stringa di cui parlavamo prima, i penultimi 3 bit la seconda tripla e i terzultimi la prima tripla
1000000 111 111 111
quindi questo significa che il file in questione è stato aperto con i permessi di lettura e scrittura per tutti.
I tre bit ancora più significativi dovrebbero rappresentare rispettivamente (dal più significativo al meno significativo) s_uid, s_gid e s_sticky bit, che in quel caso sono posti tutti e 3 a 0.
Gli ultimi 4 bit (quelli più significativi) non so a cosa servano... probabilmente sono bit "sporchi" dovuti al fatto che bisognava necessariamente arrivare almeno a 16 (visto che in C non esistono tipi di dato a 12 bit), ma non ti saprei dire con certezza![]()