Существует ли функция C для получения прав доступа к файлу?
Я пишу программу на c для запуска в UNIX и пытаюсь использовать команду chmod. Изучив справочные страницы, я знаю, что chmod нужны два параметра. во-первых, это биты прав доступа, во-вторых, это файл, который нужно изменить. Я хочу взять побитовое ИЛИ текущих битов разрешений файла и введенных пользователем, и передать их в chmod (), чтобы изменить права доступа к файлу.
Я нашелaccess()
функция, но у меня проблемы с выяснением, как использовать его, чтобы получить биты разрешения указанного файла.
Что у меня сейчас есть:
octalPermissionString = strtol(argv[1], (char**)NULL, 8);
if(chmod(argv[2], octalPermissionString | (access(argv[2], octalPermissionString)) < 0) {
fprintf(stderr, "Permissions of file %s were not changed.\n");
}
где:
argv [1] содержит строку из трехзначного десятичного числа, введенную пользователем для преобразования в восьмеричное значение и последующего использования в качестве битов разрешения для побитового ИЛИ,
argv [2] - это файл, для которого изменено его разрешение, также указанное пользователем.
octalPermissionString - это длинная строка для хранения восьмеричного преобразования пользовательского ввода.
Есть ли другие функции, которые могут возвращать биты прав доступа для данного файла?
РЕДАКТИРОВАТЬ: отсутствует закрывающая скобка