Redirect stdout to a external program in C/C++

时间:2015-06-25 19:00:53

标签: c linux

I have a program called capture that reads the webcam data and output to the avconv program. ./capture | avconv -f mpegts udp://10.1.62.252:5050 Now I have to output to avconv inside my C program. So, instead of output to the stoud: fwrite(p, size, 1, stdout); I need to do do something like that: system("stdout | avconv -f mpegts udp://10.1.62.252:5050"); How can I do that?

1 个答案:

答案 0 :(得分:4)

You can use popen() for this purpose. FILE *f = popen("avconv -f mpegts udp://10.1.62.252:5050","w"); then use fwrite() to write. PS: Actually, this method is not redirecting stdout of your c program but it is using pipe stream concept to provide input to avconv from your code.