Jak mogę sprawdzić, czy plik ma uprawnienia do odczytu w C?c odczytać uprawnienia pliku
Odpowiedz
Użyj access(2)
w POSIX. W standardzie C najlepiej jest spróbować otworzyć go pod numerem fopen()
i sprawdzić, czy mu się to uda.
If fopen()
powraca NULL
, można spróbować użyć errno
odróżnić „Plik nie istnieje” (errno == ENOENT
) i „Permission denied” (errno == EACCES
) przypadki - niestety te dwa errno
wartości są określone tylko przez POSIX jako dobrze.
(Nawet w POSIX, w większości przypadków najlepiej jest spróbować otworzyć plik, a następnie sprawdzić, dlaczego się nie udało, ponieważ użycie access()
wprowadza oczywisty stan wyścigu).
Użyj access() funkcję:
if (access(pathname, R_OK) == 0)
{
/* It's readable by the current user. */
}
errno
zostanie ustawiony na ENOENT
jeśli plik nie istnieje, lub EACCES
jeśli istnieje, ale nie jest dostępne dla bieżącego użytkownika. Aby uzyskać więcej kodów błędów, patrz the manual page.
Jestem fanem samodzielnego korzystania z stat().
Pytający zapytał, jak odczytać uprawnienia pliku. Funkcja stat() zwraca uprawnienia do pliku. Funkcja fstat() zwraca uprawnienia do pliku, biorąc pod uwagę otwarty uchwyt pliku. – bearvarine
- 1. odczytać ciąg z pliku .resx w C#
- 2. Jak odczytać niestandardowe właściwości pliku w C#
- 3. odczytać dane z pliku do końca wiersza w C/C++
- 4. C# Uprawnienia do plików/katalogów
- 5. Ustaw uprawnienia do plików w C#
- 6. jak odczytać ciąg połączenia z pliku App.config przez C#
- 7. Jak odczytać dane z pliku Excel za pomocą C#?
- 8. Tekst C# odczytać pliku zawierającego dane rozdzielany tabulatorami
- 9. odczytać pliku Tekst programowo przy użyciu Objective-C
- 10. Jak odczytać klucz prywatny z pliku Pvk w języku C#?
- 11. Jak odczytać zawartość pliku z pliku?
- 12. Uprawnienia Role i uprawnienia
- 13. SparkSQL - odczytać pliku parkiet bezpośrednio
- 14. Jak zachować uprawnienia do pliku w git?
- 15. otwarte uprawnienia do pliku() nie ustawienie prawidłowo
- 16. Nie można utworzyć uprawnienia do pliku odmówiono
- 17. Jak odczytać ostatnie "n" wiersze pliku logu
- 18. Jak zmienić uprawnienia pliku tomcat jmx do pliku
- 19. Jak odczytać plik cookie z pliku org.eclipse.swt.browser.Browser?
- 20. Jak odczytać rosnący plik tekstowy w C++?
- 21. Jak odczytać plik json do C++ ciąg
- 22. Jak odczytać i napisać ciąg STL C++?
- 23. Aplet Java Uprawnienia
- 24. Set Uprawnienia Pozycja
- 25. Jak odczytać "źródło C, tekst ISO-8859"
- 26. Jak odczytać plik do wektora w C++?
- 27. odczytać część pliku za pomocą iostreams
- 28. php odczytać pliku do importu mysql
- 29. Jak mogę odczytać pierwszą linię z pliku?
- 30. Jak zrobić "grep" odczytać wzorce z pliku?
Chciałbym użyć fopen(), ale muszę być w stanie stwierdzić różnicę, czy plik nie jest czytelny i czy nie istnieje –
Korzystanie z fopen będzie lepsze. Ponieważ dostęp jest podatny na ataki TOCTOU. (http://en.wikipedia.org/wiki/TOCTOU). Jeśli to w ogóle dotyczy twojego przypadku. –
Nazwałbym ten brudny kod ... – Tobi