执行 bash 命令并在 C 中获取输出

Sar*_*aya 1 c linux bash command

您好,我在互联网上看到了一些解决方案,它们基本上都是创建一个文件,但是我想将它们存储在一个字符数组中。速度对我来说真的很重要,我不想花任何时间在硬盘上工作。所以popen()对我来说不是一个真正的解决方案。

Ole*_*huk 5

这是一个工作代码片段:

char bash_cmd[256] = "ls -l";
char buffer[1000];
FILE *pipe;
int len; 

pipe = popen(bash_cmd, "r");

if (NULL == pipe) {
    perror("pipe");
    exit(1);
} 

fgets(buffer, sizeof(buffer), pipe);

len = strlen(buffer);
buffer[len-1] = '\0'; 

pclose(pipe);
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个工作片段,你必须在 `fgets` 之后修改 `buffer` 变量而不是 `bash_cmd` (3认同)