在popen(“ findscu -v”)中使用C ++无法在ubuntu18.04中获得输出消息

时间:2019-05-23 23:50:37

标签: c++ popen dcmtk

dcmtk3.6.3

我用C ++编写popen(“ findscu -v”,“ r”)函数的代码。 我想获取findscu的输出消息以保存在文件中。 但是它只能打印到控制台,我无法保存到文件。

  1. //-详细详细模式,打印处理详细信息

FILE * fstream = popen(“ findscu --verbose”,“ r”);
findscu的输出消息将打印到控制台。

char * p = fgets(buff,sizeof(buff),fstream);
p为NULL,buff为空。

  1. 但是如果我使用此代码:
    //-help打印此帮助文本并退出
    FILE * fstream = popen(“ findscu --help”,“ r”);
    它不会打印到控制台。

char * p = fgets(buff,sizeof(buff),fstream);
p不为NULL,并且buff具有输出消息。
那就是我想要的。

这两种情况有何不同?
如何从案例1获取消息?

谢谢。

ubuntu18.04 C ++ dcmtk3.6.3 findscu

//C++ dcmtk findscu
FILE * fstream = popen("findscu --verbose", "r");

char buff[10240] = {0};
char * p = fgets(buff, sizeof(buff), fstream);

cout <<  buff << endl;

我希望从buff而不是从控制台获取输出信息。 情况2是我想要的。 情况1是我不想要的。

0 个答案:

没有答案