Существует ли функция 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] - это файл, в котором он естьРазрешение s изменено, также указано пользователем.

octalPermissionString - это длинная строка для хранения восьмеричного преобразования пользовательского ввода.

Есть ли другие функции, которые могут возвращать биты прав доступа для данного файла?

РЕДАКТИРОВАТЬ: отсутствует закрывающая скобка

Ответы на вопрос(2)

Ваш ответ на вопрос