如何在C中获取grep的输出

时间:2015-04-10 10:43:15

标签: c grep

我正在使用函数execl()在我的C代码中执行grep命令,我想在我的C程序中使用此命令的输出。我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用popen

#include <stdio.h>
#include <stdlib.h>

FILE *popen(const char *command, const char *mode);
int pclose(FILE *stream);

int main(void)
{
    FILE *cmd;
    char result[1024];

    cmd = popen("grep bar /usr/share/dict/words", "r");
    if (cmd == NULL) {
        perror("popen");
        exit(EXIT_FAILURE);
    }
    while (fgets(result, sizeof(result), cmd)) {
        printf("%s", result);
    }
    pclose(cmd);
    return 0;
}

答案 1 :(得分:1)

如果您想继续使用execl,可以使用pipe

有一些示例和教程here