2
เป็นไปได้ไหมที่จะทำการค้นหา () กับการส่งคืนไพพ์ที่มีชื่อสำเร็จ
มีวิธีใดบ้างที่จะทำให้โปรแกรมพยายามดำเนินseek()การกับไพพ์ที่มีชื่อมันจะกลับมาประสบความสำเร็จ (แต่ทำราวกับว่าไพพ์เป็นไฟล์เปล่า) แทนที่จะเป็น 'Illegal แสวงหา'? ฉันมีการบันทึกในระบบของฉันเล็กน้อยทุกครั้งที่เก็บไว้ในฐานข้อมูล SQLite ฉันไม่มีไฟล์ทุกที่ อย่างไรก็ตามมีบางโปรแกรมที่มีปัญหากับสิ่งนี้ มี 2 กรณีที่เฉพาะเจาะจง; โปรแกรมต้องการเขียนไปยังล็อกไฟล์ซึ่ง syslog-ng ได้สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังอ่านจาก โปรแกรมต้องการดำเนินการseek()ด้วยเหตุผลบางอย่างแล้วล้มเหลว โปรแกรม (เช่น denyhosts หรือ fail2ban) ต้องการอ่านจากไฟล์บันทึกที่ syslog-ng สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังเขียนถึง โปรแกรมต้องการดำเนินการseek()กับมันและล้มเหลว เป็นการดีที่ฉันต้องการให้สิ่งเหล่านี้พยายามทำตัวราวกับว่าไพพ์ที่มีชื่อเป็นเพียงไฟล์ว่างเปล่า ฉันไม่เห็นเหตุผลว่าทำไมโปรแกรมที่เขียนบันทึกจะต้องทำการค้นหาต่อไปมันควรเปิดไฟล์เพื่อผนวกและเริ่มเขียน ฉันสามารถดูได้ว่าเหตุใดการอ่านของโปรแกรมจึงต้องการค้นหาเพื่อให้มันสามารถกลับมาทำงานจากตำแหน่งสุดท้ายได้ดังนั้นฉันจึงอยากให้มันทำงานเหมือนกับว่าไฟล์นั้นว่างเปล่า (เหมือนถูกตัดทอน) ดังนั้นมีตัวเลือกที่สามารถตั้งค่าบน pipes ชื่อเพื่อให้พวกเขาทำงานแบบนี้? หากไม่มีโหมดที่สามารถตั้งค่าได้เมื่อ syslog-ng เปิดไปป์เพื่อให้มันทำงานแบบนี้ (ฉันเปิดเพื่อทำการเปลี่ยนแปลงรหัส)? หรือว่าฉันเป็นห้วย