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