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