错误:在':'标记之前预期')'

时间:2014-03-31 23:19:23

标签: c popen

int main (int argc, char *argv[])
{
    FILE *in;
    extern FILE *popen();
    char buff[512];
    char buff2[1024];

    snprintf(buff2, 1024, "ifconfig eth0 | grep HWaddr | awk '{for(i=0;i<5;i++) sub(":","-",$5); print $5}'");
    if(!(in = popen(buff2, "r")))
    {

            exit(1);
    }

    while(fgets(buff, sizeof(buff), in)!=NULL){
            printf("%s", buff);
    }
    pclose(in);

    return 0;
}

我不知道为什么我会收到此错误,有人可以帮助我。

2 个答案:

答案 0 :(得分:4)

看看你在这一行上使用开/关双引号:

    snprintf(buff2, 1024, "ifconfig eth0 | grep HWaddr | awk '{for(i=0;i<5;i++) sub(":","-",$5); print $5}'");

您正在关闭之前的双引号:。尝试使用\&#34;。

转义字符串中的双引号

答案 1 :(得分:0)

尝试在字符串中转义引号。