Я вижу, что ifstream :: open() возвращает void и не предлагает никакого способа увидеть, не открылся ли файл из-за разрешений. Что хорошего api, чтобы проверить, доступны ли разрешения на чтение или альтернативные разрешения на запись для файла для текущего процесса на C++?Что такое хороший способ проверить, есть ли у файла разрешения?
2
A
ответ
2
Попробуйте доступ POSIX() функцию, в unistd.h
2
Вы также можете использовать stat
, который возвращает кучу информации, режим, UID и GID в том числе:
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
Я не знаю, хороших оболочек C++ для этих функций нижнего уровня.
1
Если вы используете окна, вы можете использовать GetFileAttributesEx для проверки атрибутов файла. Если его доступно только для чтения, вам может потребоваться вызвать SetFileAttributes, чтобы отключить флаг только для чтения.
Смежные вопросы
- 1. Что такое хороший способ проверить с огурцом
- 2. Есть ли хороший способ проверить код jQuery?
- 3. Что такое хороший способ проверить, является ли наблюдаемое завершено?
- 4. Что такое хороший способ проверить файл, чтобы узнать, есть ли его zip-файл?
- 5. Facebook: Есть ли способ проверить, что у меня есть определенные разрешения?
- 6. Что такое быстрый способ проверить наличие файла?
- 7. Что такое хороший способ сжать имена файлов?
- 8. Что такое хороший способ проверить ключ словаря в python?
- 9. Что такое хороший способ проверить наследование расширенных конструкторов Backbone?
- 10. Есть ли хороший способ проверить, появляется ли UIViewController?
- 11. Что такое хороший способ проверить проанализированные json-карты для равенства?
- 12. Что такое хороший способ * временно * сортировать вектор?
- 13. Что такое хороший способ визуализации выделенных шрифтов?
- 14. Что такое хороший способ создания огромного тестового файла?
- 15. Что такое хороший способ управления списком?
- 16. Что такое хороший способ разбить строки здесь?
- 17. Что такое хороший способ сериализации удаленных команд?
- 18. Есть ли способ в InputStream - хороший способ перебора файла?
- 19. Что такое хороший способ интернационализации приложения Elm?
- 20. Что такое хороший шаблон для создания файла?
- 21. Что такое хороший способ прочитать текст?
- 22. Что такое хороший способ изучения Java?
- 23. Что такое хороший способ сохранить 2D-карту
- 24. Что такое хороший способ развертывания приложения Perl?
- 25. Что такое хороший способ указать поле обязательно?
- 26. Что такое хороший способ получить связанный контент
- 27. Что такое хороший способ получить информацию c?
- 28. Что такое хороший способ документировать суб-паб?
- 29. Что такое хороший способ сделать рекурсивный список
- 30. Что такое хороший способ хранения постоянного массива?
I/O зависит от ОС, возможно, если бы вы могли сообщить нам свою ОС, можно было бы дать более конкретный ответ. –
Возможный дубликат: http://stackoverflow.com/questions/1138508/in-c-on-unix-how-can-a-process-tell-what-permissions-it-has-to-a-file-without- op –
Это для Linux. – WilliamKF