Recentemente, ao tentar excluir um atalho de um determinado software da minha área de trabalho no Windows 8.1, recebi a seguinte mensagem de erro:
O Windows exibiu uma mensagem de falta de memória para excluir um simples atalho! Se a minha cópia não fosse em inglês eu até poderia acreditar que se tratasse de um erro de tradução, mas não é o caso. Simplesmente bizarro!
De vez em quando faço uma limpeza no meu desktop do emaranhado de atalhos criados pelos softwares instalados, mas este em particular não queria ser excluído de forma alguma (o software em questão é o EVGA Precision X) com a tela acima sendo exibida a cada tentativa. Após alguns testes descobri que neste caso o problema na verdade está em uma permissão (mais precisamente na falta dela) no sistema de arquivos NTFS para o atalho em questão.
Para resolver o problema, localize o atalho no disco (geralmente ele estará na pasta Desktop da sua conta de usuário ou então na pasta Public, ambos geralmente ficam em C:\Users), acesse as suas propriedades com o botão direito e edite as permissões de acesso na aba Segurança. Agora selecione o item INTERACTIVE e forneça as permissões totais, conforme demonstrado na imagem abaixo:
Feito isto o atalho malcriado poderá finalmente ser excluído. Maravilha!
Veja também:
int r;
ResponderExcluirr = unlink(atalho);
if (r < 0 && errno == ENOMEM)
printf("Instale mais uns 4 GiB de memória e tente novamente.");
É realmente estranho o kernel retornar ENOMEM. O Windows certamente tem um código de erro equivalente a EACCES. Ou quem sabe é o Explorer que está fazendo lambança? Daria para rodar o Process Monitor e tentar ver o que está havendo...
Como os ícones malcriados foram para o limbo não consegui mais reproduzir a mensagem. Mas caso ocorra novamente vou investigar mais a fundo.
Excluir