ชื่อ pipes (FIFO) มีสี่สามข้อได้เปรียบที่ฉันสามารถคิด:
(อัปเดตขอบคุณคำติชมจากStephane Chazelas )
ดังนั้นหนึ่งในภารกิจที่ชัดเจนในทันทีที่คุณไม่สามารถทำได้ด้วยไพพ์ที่ไม่มีชื่อคือแอปพลิเคชันไคลเอนต์ / เซิร์ฟเวอร์ทั่วไป
สุดท้าย (กลัว) ชี้ข้างต้นเกี่ยวกับท่อทิศทางเดียวมีความเกี่ยวข้องบน Linux POSIX (ดูpopen()
) กล่าวว่าท่อเท่านั้นจำเป็นต้องอ่านหรือเขียนได้บนลินุกซ์ที่พวกเขามีทิศทางเดียว ดูที่การทำความเข้าใจกับเคอร์เนล Linux (3rd O'Reilly) สำหรับรายละเอียดเฉพาะของ Linux (p787) ข้อเสนอแบบสองทิศทางของท่ออื่น ๆ (ไม่มีชื่อ) ของระบบปฏิบัติการ
ตัวอย่างเช่น Nagios ใช้แบบ FIFO สำหรับไฟล์คำสั่ง กระบวนการภายนอกต่างๆ (สคริปต์ CGI, การตรวจสอบภายนอก, NRPE ฯลฯ ) เขียนคำสั่ง / อัปเดตไปยังฟีเจอร์นี้และประมวลผลโดยกระบวนการ Nagios แบบถาวร
ไปป์ที่มีชื่อมีคุณลักษณะที่ไม่เหมือนกับการเชื่อมต่อ TCP แต่มีความแตกต่างที่สำคัญ เนื่องจาก Fifo มีชื่อระบบไฟล์ถาวรคุณสามารถเขียนได้แม้ว่าจะไม่มีผู้อ่านการยอมรับการเขียนจะบล็อก (โดยไม่มี async หรือ non-blocking I / O) แม้ว่าคุณจะไม่หลวมข้อมูลหากผู้รับไม่ได้ เริ่มต้นแล้ว (หรือกำลังเริ่มต้นใหม่)
สำหรับการอ้างอิงโปรดดูที่ซ็อกเก็ตโดเมน Unixและคำตอบสำหรับคำถาม Stackoverflowซึ่งสรุปวิธีการIPCหลักและอันนี้พูดถึงpopen()