1
我想从shell命令(my_program)获取输出。下面是从this网站采取了例如:永久获取以C++运行的shell命令的输出
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
FILE *in;
char buff[512];
if(!(in = popen("my_program", "r"))){
return 1;
}
while(fgets(buff, sizeof(buff), in)!=NULL){
cout << buff;
}
pclose(in);
return 0;
}
问题:
我要永久运行了一个程序,得到的输出,而程序仍在运行,不仅能获得从输出编程一次。
有什么想法?
谢谢先进。
1)打开三个管道,2)分叉,3)'dup2'和微动文件描述符,4)'exec'在孩子中。 – 2012-03-24 20:32:46
你的问题不是很清楚 - 你是什么意思的'永久'?为什么不让'my_program'永久运行? – trojanfoe 2012-03-24 20:41:19
@KerrekSB,我已经想过使用fork/threads。但想知道是否有另一个可选项。感谢您的回答。 – 2012-03-24 20:47:47