C memanggil subproses dan menyuntikkan stdin dan membacanya stdout

Saya belum menemukan jawaban yang memuaskan jadi mohon maaf jika ini sudah pernah dijawab sebelumnya.

Pada dasarnya saya ingin dapat memanggil suatu program dan memasukkan beberapa data ke dalam stdinnya dan membacanya stdout dari dalam program C.

Saya ingin meniru ini:

data kucing.txt | program

di mana keluaran program ditangkap dan datanya ditulis ke stdin program tersebut.

Ini seperti pertanyaan ini tetapi di C, bukan python dan saya tidak memerlukan subproses untuk hidup selamanya, cukup jalankan dengan input data, keluarkan output dan mati.

Berulang kali menulis ke STDIN dan membaca STDOUT dari Subproses tanpa menutupnya


person David    schedule 03.08.2016    source sumber
comment
Bagaimana Anda memulai subproses?   -  person Amin Negm-Awad    schedule 03.08.2016
comment
Saya tidak tahu, saya mengharapkan itu menjadi bagian dari jawabannya (popen, fork, dll.)   -  person David    schedule 03.08.2016
comment
Kemungkinan duplikat dari popen() alternatif   -  person Amin Negm-Awad    schedule 03.08.2016
comment
Jawaban pertama berisi contoh pembuatan subproses dengan popen()/exec…() dan menggunakan pipa untuk berkomunikasi. Sebagai catatan tambahan: Q Anda berbunyi sedikit jika Anda memiliki data sebelumnya dan ingin mendapatkan kembali data setelah proses selesai. Dalam kasus seperti itu cukup tulis data input ke file, mulai subproses dari file itu dan biarkan dia menulis ke file dan akhirnya membaca file setelah proses selesai. Mungkin ini lebih mudah dalam skenario Anda.   -  person Amin Negm-Awad    schedule 03.08.2016
comment
Tentu saja, fork(), bukan popen().   -  person Amin Negm-Awad    schedule 03.08.2016