Я обнаружил, что если я передаю большое количество данных между двумя процессами по каналу, временный файл будет создан linux в каталоге / tmp. Если операция конвейера завершится успешно, соответствующий временный файл будет автоматически удален ОС. Но если операция не удалась, файл tmp остается там.
По какой-то причине я не хочу, чтобы у пользователя была возможность получать данные, которые я передал через канал, поэтому я не хочу, чтобы что-либо оставалось на жестком диске, даже если моя программа потерпела крах. Как я могу это сделать?
sender > filename
then receiver < filename
. Я проверял бы файл tmp во время обеих операций, чтобы видеть, делает ли это отправитель или получатель.
mkfifo
созданный канал никогда не выполняет буферизацию (вообще!) И никогда не создает файлы.