C:A função de remover remove todos os arquivos?
-
24-09-2019 - |
Pergunta
Eu estou usando algo como isto:
char *file;
file = (char *)malloc(BUFSIZE * sizeof(char));
printf("Enter the filename:");
scanf("%s", file);
if(remove(file)) {
printf("Error while removing");
}
Eu criei dois arquivos:
touch filetobedeleted1.txt
chmod 777 filetobedeleted1.txt
touch filetobedeleted2.txt
chmod 444 filetobedeleted2.txt
Agora, o meu programa remove os arquivos, mas que não é suposto acontecer, certo?Ninguém sabe o que há de errado com o código?
EDITAR:Adicionado código para colocar o nome para o arquivo...
Ok...parece que tudo depende de como o conjunto de permissões no diretório, mas, em seguida, há uma maneira de utilizar permissões de ficheiro como um cheque?
Solução
Vá para o backend do seu site magento.
Vá para a configuração do sistema>.Role para baixo para avançado e clique nele.
De lá você encontrará mage_review .Desativar isso.
Outras dicas
Removendo um arquivo só precisa de acesso de gravação no diretório.
Estritamente falando, o que você está removendo é uma referência para o arquivo, um hardlink.O próprio ficheiro não será apagado até que todos os links para o arquivo se foram.
Experimentá-lo com o comando rm!
remove()
chamadas unlink()
, e , de acordo com man 2 unlink
, que só precisa de permissões de gravação para a pai diretório.
Você pode usar o getumask()
função e dê um cheque antes de ligar remove()
.