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?

Foi útil?

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().

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top