如何在C语言中获得grep的输出

如何在C语言中获得grep的输出,c,grep,C,Grep,我正在用execl()函数在我的C代码中执行grep命令,我想在我的C程序中使用这个命令的输出。如何操作?您可以使用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];

我正在用execl()函数在我的C代码中执行grep命令,我想在我的C程序中使用这个命令的输出。如何操作?

您可以使用
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;
}
#包括
#包括
文件*popen(const char*命令,const char*模式);
int pclose(文件*流);
内部主(空)
{
文件*cmd;
字符结果[1024];
cmd=popen(“grep-bar/usr/share/dict/words”,“r”);
如果(cmd==NULL){
佩罗尔(“波本”);
退出(退出失败);
}
while(fgets(result,sizeof(result),cmd)){
printf(“%s”,结果);
}
pclose(cmd);
返回0;
}

您可以使用
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;
}
#包括
#包括
文件*popen(const char*命令,const char*模式);
int pclose(文件*流);
内部主(空)
{
文件*cmd;
字符结果[1024];
cmd=popen(“grep-bar/usr/share/dict/words”,“r”);
如果(cmd==NULL){
佩罗尔(“波本”);
退出(退出失败);
}
while(fgets(result,sizeof(result),cmd)){
printf(“%s”,结果);
}
pclose(cmd);
返回0;
}

如果要继续使用
execl
,可以使用


这里有一些示例和教程。

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


有一些例子和教程。

@ MyAUT不是重复的,因为C不是C++。jj::差别小,OP需要的是代码> PONEN()/CUT>(并且它是第一个答案)。@ MyAUT不是重复的,因为C不是C++。jj::差别小,OP需要的是代码> PONEN()/CUT>(并且它是第一个答案)。