Tôi thấy rằng nếu tôi chuyển một lượng lớn dữ liệu giữa hai quy trình thông qua đường ống, một số tệp tạm thời sẽ được tạo bởi linux trong thư mục / tmp. Nếu thao tác đường ống thành công, tệp tạm thời tương ứng sẽ được hệ điều hành tự động xóa. Nhưng nếu hoạt động thất bại, tập tin tmp vẫn ở đó.
Vì một số lý do, tôi không muốn người dùng có cơ hội nhận được dữ liệu tôi đã chuyển đường ống trhough, vì vậy tôi không muốn bất cứ thứ gì còn lại trên đĩa cứng ngay cả khi chương trình của tôi bị hỏng. Tôi có thể làm cái này như thế nào?
sender > filename
sau đó receiver < filename
. Tôi sẽ kiểm tra tệp tmp trong cả hai op, để xem liệu người gửi hoặc người nhận đang thực hiện nó.
mkfifo
đường ống được xử lý không bao giờ thực hiện bất kỳ bộ đệm nào (tất cả!) Và không bao giờ tạo tệp.