首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用popen提取系统命令的输出

使用popen提取系统命令的输出
EN

Stack Overflow用户
提问于 2013-01-03 16:48:37
回答 1查看 3.4K关注 0票数 1

我使用下面的代码来提取系统命令的输出。我没有在path变量中设置pic的PATH。我想存储命令"which pic"的输出,而不想在控制台上显示它。

下面是我的代码:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main ()
{
    FILE *fp;
  int status;
  char path[1035];
char *command = "which pic";


  /* Open the command for reading. */
  fp = popen(command, "r");
  if (fp == NULL) {
    printf("Failed to run command\n" );
    exit(0);
  }

  /* Read the output a line at a time - output it. */
  while (fgets(path, sizeof(path)-1, fp) != NULL) {
   cout<<"<<<<<<<<<<,"<<endl;
    printf("%s", path);
  }

  /* close */
  pclose(fp);

  return 0;
}

但它在控制台中显示以下输出:

代码语言:javascript
复制
which: no pic in(/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin)
EN

回答 1

Stack Overflow用户

发布于 2013-01-03 18:30:52

按照您的命令运行"which pic 2>&1"。您希望捕获来自which的所有输出,包括它的错误(发送到stderr)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14135554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档