Come è possibile verificare se un file ha autorizzazioni di lettura in C?c leggere le autorizzazioni di un file
risposta
Utilizzare access(2)
in POSIX. In Standard C, il meglio che puoi fare è provare ad aprirlo con fopen()
e vedere se ha successo.
If fopen()
rendimenti NULL
, si può provare a utilizzare errno
distinguere tra il "File non esiste" (errno == ENOENT
) e "Permesso negato" (errno == EACCES
) casi - ma purtroppo questi due errno
valori sono definiti solo da POSIX bene.
(Anche su POSIX, nella maggior parte dei casi la cosa migliore da fare è provare ad aprire il file, quindi controllare perché non è riuscito, perché l'utilizzo di access()
introduce una condizione di competizione evidente).
utilizzare la funzione access():
if (access(pathname, R_OK) == 0)
{
/* It's readable by the current user. */
}
errno
sarà impostato ENOENT
se il file non esiste, o se esiste EACCES
ma non è accessibile per l'utente corrente. Vedi the manual page per altri codici di errore.
Sono un fan dell'uso di stat(), me stesso.
L'interrogante ha chiesto come leggere le autorizzazioni di un file. La funzione stat() restituisce le autorizzazioni del file. La funzione fstat() restituisce le autorizzazioni del file data l'handle del file aperto. – bearvarine
- 1. Imposta autorizzazioni file in C#
- 2. Copia un file con le autorizzazioni originali
- 3. Aggiunta di autorizzazioni di sicurezza ai file in C#
- 4. Controllo di accesso autorizzazioni file/cartella
- 5. Leggere le risorse da un file DLL
- 6. autorizzazioni sails che ottengono tutte le autorizzazioni
- 7. Web.Config - Impossibile leggere il file di configurazione a causa di autorizzazioni insufficienti
- 8. Leggere file json in C++
- 9. Leggere i file Unicode C++
- 10. Come leggere le proprietà del file personalizzato in C#
- 11. Autorizzazioni di file su s3
- 12. Come leggere un file di testo in crescita in C++?
- 13. Modifica autorizzazioni file di sovversione
- 14. Perché open() crea il mio file con le autorizzazioni sbagliate?
- 15. Leggere un file di testo all'indietro in C
- 16. Kdb +: come controllare le autorizzazioni e le autorizzazioni
- 17. Leggere le proprietà estese dell'immagine in C#
- 18. leggere da un punto specifico in un file C++
- 19. come leggere efficientemente un file binario in un vettore C++
- 20. Come leggere un file JSON in stringa un C++
- 21. Rimuovi tutte le autorizzazioni di directory
- 22. Leggere un file all'indietro?
- 23. Leggere i primi byte di un file
- 24. Leggere e scrivere int in un file binario in C++
- 25. Come leggere le ultime righe "n" del file di registro
- 26. FileSystemWatcher che supera le autorizzazioni del file system
- 27. Leggere un file di testo con php
- 28. arricciatura: leggere le intestazioni dal file
- 29. Come determinare le autorizzazioni effettive per un utente di un database SQL Server tramite C#?
- 30. Copia autorizzazioni file, ma non file
Vorrei usare fopen(), ma devo essere in grado di capire se il file non è leggibile e se non esiste –
Usare fopen sarà migliore. Perché l'accesso è vulnerabile agli attacchi TOCTOU. (Http://en.wikipedia.org/wiki/TOCTOU). Se questo è un problema nel tuo caso. –
Chiamerei questo codice sporco ... – Tobi