【问题标题】:How to implement shell output as a input of C language?如何实现shell输出作为C语言的输入?
【发布时间】:2018-03-27 05:14:34
【问题描述】:

例如,猜猜我有一个编译的 c 程序,命名为“binaryOutput”。 而在 Unix 环境中, [root@blablabla ~ ] ./binaryOutput 打印出一些这样的结果 [0] [1] [0] [1] [1]

我想将这些结果用作另一个 c 文件的输入。

在 C 语言中,我可以运行该文件。

system("./binaryOutput") ;

在代码之后,我想将数字添加为数组的输入。 我该怎么做?

【问题讨论】:

标签: c shell unix


【解决方案1】:

打开示例。你可以得到命令的输出。

#include <stdio.h>

int main(void)
{
  FILE *fp=NULL;
  char line[1024];
  if ( (fp=popen("ls", "r"))==NULL )
  {
    return -1;
  }
  while( fgets(line, 1023, fp)!=NULL )
  {
    printf("read from popen:%s", line);
  }
  pclose(fp);
  return 0;
}

【讨论】:

  • 您能否描述一下您的代码是如何工作的?看起来您的程序收集目录列表。这不是 OP 想要的。该问题询问有关执行任何可执行文件的问题。不是特定的 unix 命令。所以告诉我们通用方法。
  • 把“ls”换成你想要的。 "./binaryOutput"
  • @MohammadRakibAmin ls “任何可执行文件”集合的一部分。
  • fgets(line, sizeof line, fp) -- 没有理由将size 参数减少为fgets,就像您对scanf field-width 修饰符所做的那样1 .
  • @Michael Walz 我不知道您必须弄清楚输入属于哪个“集合”,然后检查该“集合”是否涵盖了您想要的输入。只提your command goes here不是更有帮助吗?我只是指出让 OP 的查询更清楚的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 2021-11-19
  • 1970-01-01
  • 2017-09-06
  • 2021-06-21
  • 1970-01-01
相关资源
最近更新 更多