Comment puis-je vérifier si un fichier a des permissions de lecture en C?c lire les permissions d'un fichier
Répondre
Utilisez access(2)
dans POSIX. En Standard C, le mieux que vous pouvez faire est d'essayer de l'ouvrir avec fopen()
et de voir si cela réussit.
Si fopen()
retours NULL
, vous pouvez essayer d'utiliser errno
de faire la distinction entre le « fichier n'existe pas » (errno == ENOENT
) et « Autorisation refusée » (errno == EACCES
) cas - mais malheureusement, ces deux errno
valeurs ne sont définies par POSIX bien.
(Même sur POSIX, dans la plupart des cas, la meilleure chose à faire est d'essayer d'ouvrir le fichier, puis regardez pourquoi il a échoué, car l'utilisation access()
introduit une condition de concurrence évidente).
Utilisez la fonction access():
if (access(pathname, R_OK) == 0)
{
/* It's readable by the current user. */
}
errno
sera réglé sur ENOENT
si le fichier n'existe pas, ou EACCES
si elle existe, mais n'est pas accessible à l'utilisateur actuel. Voir the manual page pour plus de codes d'erreur.
Je suis un fan d'utiliser stat(), moi-même.
Le questionneur a demandé comment lire les autorisations d'un fichier. La fonction stat() renvoie les autorisations du fichier. La fonction fstat() renvoie les permissions du fichier compte tenu de son handle de fichier ouvert. – bearvarine
- 1. C# Copier un fichier dans un dossier avec des permissions
- 2. Permissions Django et fichier: Bonnes pratiques?
- 3. python shutil.copytree - ignore les permissions
- 4. Permissions impaires sur le fichier modifié par PHP move_uploaded_file()
- 5. Comment lire les numéros à partir d'un fichier ASCII (C++)
- 6. C# LINQ - lire un fichier XML
- 7. C++ Lire le fichier dans hash_map
- 8. C# Fichier Excel OLEDB lire HTML IMPORT
- 9. lire la matrice d'un fichier en C C++
- 10. vérifier les permissions des répertoires en python
- 11. apache permissions erreur
- 12. Facebook notifications.sendEmail - Permissions insuffisantes
- 13. comment lire un fichier
- 14. mkdir nant permissions
- 15. C# lire le contenu du fichier et trouver des chaînes
- 16. DFC lire un fichier
- 17. Comment lire un fichier texte chinois à partir de C#?
- 18. Lire des images à partir d'un fichier en C++
- 19. recommande un tutoriel pour lire le fichier Excel en C#
- 20. Comment puis-je lire un fichier MIB SNMP dans C#?
- 21. Lire fichier texte à l'aide Programmatically Objective-C
- 22. Comment lire un fichier pim.vol
- 23. Lire Pdf avec C
- 24. comment peut lire les valeurs et les rangea C#
- 25. Lire noeud XMLDocument sans lire ses nœuds enfants en C#
- 26. Comment définir les permissions (attributs) sur un fichier dans un fichier ZIP en utilisant le module zipfile de Python?
- 27. Lire les variables Java
- 28. Modifier les métadonnées d'un fichier PDF avec C/C++?
- 29. C# lire unicode?
- 30. Comment lire un fichier csv avec python
J'utiliserais fopen(), mais je dois être capable de dire la différence si le fichier n'est pas lisible et s'il n'existe pas –
L'utilisation de fopen sera meilleure. Parce que l'accès est vulnérable aux attaques TOCTOU. (http://en.wikipedia.org/wiki/TOCTOU). Si c'est une préoccupation dans votre cas. –
Je appellerais ce code sale ... – Tobi