|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9448
|
[C] Effettuare una 'stat'
Ciao, faccio una stat su una directory passata da linea di comando e, prima di tentarne la apertura, vorrei controllare che sia effettivamente una directory e che, chi ha lanciato il comando, abbia i diritti per accedervi. In particolare vorrei permettere l'apertura solo se la directory indicata e' accessibile in LETTURA sia al "group" che ad "other". So che il field "st_mode" (Della struct stat) e' quello di riferimento per questa "questione". Ci sono delle macro apposite(S_IRUSR, S_IRGRP, etc.), riferite ai possibili valori di st_mode, con le quali, appunto, poter capire i diritti di accesso della directory. Il problema e' che non so come "utilizzarle"...
![]() ![]() thks ![]()
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Usando man fstat...
Codice:
(st.st_mode & (S_IROTH|S_IXOTH|S_IRGRP|S_IXGRP|S_IRUSR|S_IXUSR)) == (S_IROTH|S_IXOTH|S_IRGRP|S_IXGRP|S_IRUSR|S_IXUSR)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 Ultima modifica di ilsensine : 20-07-2004 alle 07:36. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9448
|
Quote:
![]() Cmq. grazie per la dritta ! ![]()
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9448
|
Altro problemino... sapreste dirmi come poter evitare di prendere in considerazione link a directory ?!? Il fatto e' che il tipo di questi risulta essere "sconosciuto" e, pur mettendo come condizione (S_ISDIR(infoStat.st_mode) && !S_ISLNK(infoStat.st_mode)), questi vengono ugualmente presi in considerazione cosicche', quando faccio la opendir, mi viene restituito errore poiche' la directory non e' accessibile dalla precedente directory corrente (Non so se mi sono spiegato molto bene...
![]() thks
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
lstat?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9448
|
Quote:
![]() P.S.: thks ![]()
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]() Basterebbe LEGGERLO, il man ![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:55.