PDA

View Full Version : [C] diritti su stat in c sotto ubuntu


antony85
19-06-2009, 12:18
sto lavorando sotto linux ubuntu e utilizzo C come linguaggio.
attraverso le strutture stat devo leggere i diritti di accesso di un file ma non so come fare!so come si legge la dimensione
(
struct stat statttt;
stat("nomefile",&statttt);
printf("%d",statttt.st_size);
)
ma non come interpretare e leggere i diritti di accesso(ovvero la prima stringa ke esce fuori quando lanciamo il comando ls -l (drwxrw-r--)...come devo fare?

fero86
19-06-2009, 19:26
campo st_mode della struttura stat, da testare con alcuni flags documentati: http://linuxmanpages.com/man2/stat.2.php

per esempio per sapere se gli "altri" hanno permesso di scrittura fai un and bitwise col flag S_IWOTH e vedi se il risultato é uguale a S_IWOTH.

antony85
05-07-2010, 08:03
è possibile concatenare piu opzioni?nel senso se volessi accertarmi che sia utenti che gruppo hanno permessi di scrittura dovrei fare
if(S_IWUSR & S_IWGRP & stat.st_mode)
printf("utente e gruppo scrittura");


giusto? o no?

tuccio`
05-07-2010, 11:09
è possibile concatenare piu opzioni?nel senso se volessi accertarmi che sia utenti che gruppo hanno permessi di scrittura dovrei fare
if(S_IWUSR & S_IWGRP & stat.st_mode)
printf("utente e gruppo scrittura");


giusto? o no?if ((S_IWUSR | S_IWGRP) & stat.st_mode == S_IWUSR | S_IWGRP)