Ho scoperto che se trasferisco una grande quantità di dati tra due processi tramite pipe, alcuni file temporanei verranno creati da linux nella directory / tmp. Se l'operazione di pipe ha esito positivo, il file temporaneo corrispondente verrà rimosso automaticamente dal sistema operativo. Ma se l'operazione non è riuscita, il file tmp rimane lì.
Per qualche motivo, non voglio che l'utente abbia l'opportunità di ottenere i dati che ho trasferito tramite pipe, quindi non voglio che nulla rimanga sul disco fisso anche se il mio programma si è bloccato. Come posso fare questo?
sender > filename
then receiver < filename
. Controllerei il file tmp durante entrambe le operazioni, per vedere se il mittente o il destinatario lo stanno facendo.
mkfifo
pipe creata non fa mai buffering (affatto!) E non crea mai file.