c читают полномочия файла

Python передает ссылки на объекты значением .

Python передает ссылки на объекты значением (как Java), и все в Python - объект. Это звучит простым, но затем Вы заметите, что некоторые типы данных, кажется, показывают характеристики передачи значением, в то время как другие, кажется, действуют как передача ссылкой..., каково соглашение?

важно понять изменяемые и неизменные объекты. Некоторые объекты, как строки, кортежи, и числа, неизменны. Изменение их в функции/методе создаст новый экземпляр, и исходный экземпляр вне функции/метода не изменяется. Другие объекты, как списки и словари изменяемы, что означает, что можно изменить оперативный объект. Поэтому изменение объекта в функции/методе также изменит исходный объект снаружи.

5
задан Karl Richter 9 February 2016 в 14:56
поделиться

3 ответа

Используйте доступ (2) в POSIX. В стандарте C лучшее, что вы можете сделать, - это попытаться открыть его с помощью fopen () и посмотреть, удастся ли он.

Если fopen () вернет NULL ], вы можете попробовать использовать errno , чтобы различать «Файл не существует» ( errno == ENOENT ) и «Permission denied» ( errno == EACCES ), но, к сожалению, эти два значения errno также определены только в POSIX.

(Даже в POSIX в большинстве случаев лучше всего попытаться открыть файл, а затем посмотреть почему это не удалось, потому что использование access () вводит очевидное состояние гонки).

9
ответ дан 18 December 2019 в 06:35
поделиться

Я сам фанат использования stat () .

8
ответ дан 18 December 2019 в 06:35
поделиться

Используйте функцию access () :

if (access(pathname, R_OK) == 0)
{
    /* It's readable by the current user. */
}

номер ошибки будет установлен на ENOENT , если файл не существует, или EACCES , если он существует, но недоступен текущему пользователю. Дополнительные коды ошибок см. на странице руководства .

7
ответ дан 18 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: