Qual Unix? Será muito difícil fazer com que a criação de arquivos falhe quando um nome "inválido" for passado para ele, mas existem algumas maneiras específicas de fazer isso.
Em primeiro lugar, há inotify
e seus parentes, que podem pelo menos observar o sistema de arquivos e notificá-lo imediatamente quando um arquivo é criado. Eu não tenho certeza se você pode realmente parar a criação e fazer a chamada do sistema retornar um erro, mas você pode se livrar dela imediatamente.
Outra maneira seria um sistema de arquivos baseado em fusíveis (pré-existente ou recém-escrito). Em fuse
, você realmente implementa todos os procedimentos do sistema de arquivos no espaço do usuário e pode criar suas próprias regras sobre o que é um arquivo e como ele pode ser chamado.
Tudo isso, claro, depende de você ter um sistema de arquivos local, um sistema montado remotamente, algum protocolo de transferência de rede?
Isso pode ser relevante: