Existe uma função C para obter permissões de um arquivo?
Eu estou escrevendo um programa c para ser executado no UNIX e tentando utilizar o comando chmod. Depois de consultar as man pages, eu sei que o chmod precisa de dois parâmetros. primeiro é os bits de permissão, segundo é o arquivo a ser alterado. Eu quero pegar o OR bit a bit dos bits de permissão atuais do arquivo e aqueles inseridos pelo usuário, e alimentar isso para chmod () para alterar as permissões do arquivo.
Eu encontrei oaccess()
função, mas estou tendo problemas para descobrir como usá-lo para obter os bits de permissão do arquivo especificado.
O que eu tenho agora é:
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");
}
Onde:
argv [1] contém uma cadeia de um número decimal de três dígitos inserido pelo usuário para ser convertido em octal e, em seguida, ser usado como bits de permissão para ser bit a bit ORed,
argv [2] é o arquivo para ter sua permissão alterada, também especificada pelo usuário.
octalPermissionString é um longo para manter a conversão octal de entrada do usuário.
É / Existem outras funções que podem retornar os bits de permissão de um determinado arquivo?
EDIT: faltando parênteses fechar