ฉันไม่พบคำตอบที่น่าพอใจ ดังนั้นขออภัยหากมีคำตอบนี้มาก่อน
โดยพื้นฐานแล้วฉันต้องการเรียกใช้โปรแกรมและฉีดข้อมูลบางส่วนลงใน stdin และอ่าน stdout จากภายในโปรแกรม C
ฉันต้องการเลียนแบบสิ่งนี้:
cat data.txt | โปรแกรม
โดยที่เอาต์พุตของโปรแกรมถูกดักจับและข้อมูลถูกเขียนไปยัง stdin ของโปรแกรมดังกล่าว
มันเหมือนกับคำถามนี้เล็กน้อย แต่ใน C แทนที่จะเป็น python และฉันไม่ต้องการให้กระบวนการย่อยอยู่ตลอดไป เพียงแค่ดำเนินการกับข้อมูลที่ป้อนเข้า คายเอาต์พุตออกมาแล้วตาย
เขียนซ้ำไปยัง STDIN และอ่าน STDOUT ของกระบวนการย่อยโดยไม่ต้องปิด
popen()
/exec…()
และการใช้ไปป์ในการสื่อสาร ตามที่ทราบด้านข้าง: Q ของคุณอาจฟังดูเล็กน้อยหากคุณมีข้อมูลล่วงหน้าและต้องการรับข้อมูลกลับหลังจากกระบวนการเสร็จสิ้น ในกรณีเช่นนี้ เพียงแค่เขียนข้อมูลอินพุตลงในไฟล์ เริ่มกระบวนการย่อยจากไฟล์นั้น และปล่อยให้เขาเขียนลงในไฟล์ และสุดท้ายจะอ่านไฟล์หลังจากกระบวนการเสร็จสิ้น บางทีนี่อาจง่ายกว่าในสถานการณ์ของคุณ - person Amin Negm-Awad   schedule 03.08.2016fork()
ไม่ใช่popen()
- person Amin Negm-Awad   schedule 03.08.2016