Descubrí que si transfiero una gran cantidad de datos entre dos procesos a través de una tubería, linux creará un archivo temporal en el directorio / tmp. Si la operación de canalización tiene éxito, el sistema operativo eliminará automáticamente el archivo temporal correspondiente. Pero si la operación falla, el archivo tmp permanece allí.
Por alguna razón, no quiero que el usuario tenga la oportunidad de obtener los datos que transferí a través de la tubería, por lo que no quiero que quede nada en el disco duro, incluso si mi programa falla. ¿Cómo puedo hacer esto?
sender > filename
entonces receiver < filename
. Verificaría el archivo tmp durante ambas operaciones, para ver si el remitente o el receptor lo están haciendo.
mkfifo
tubería creada nunca crea ningún almacenamiento intermedio (¡en absoluto!) Y nunca crea archivos.