LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1345|回复: 2

求助,使用管道传递gcc的输出信息失败.谢谢. 

[复制链接]
发表于 2008-3-12 12:22:11 | 显示全部楼层 |阅读模式
我想通过管道传递gcc编译代码后输出的信,可是老是失败
把printf("%s\n",str);去掉,还是会输出信息,怎么才能让
gcc的输出传到str中呀?
代码如下:

#include <stdio.h>
int main()
{
        FILE* fd;
        char str[80];
        printf("Now this process will call popen system call\n");
        if((fd = popen("gcc -o test test.c","r")) == NULL)
        {
                printf("Call popen failed\n");
                return 1;
        }
        else
        {
                while(fgets(str,80,fd) != NULL)
                {
                        printf("%s\n",str);
                }
        }
        pclose(fd);
        return 0;
}
 楼主| 发表于 2008-3-15 13:32:25 | 显示全部楼层
这个问题解决了,直接用重定向
gcc XXX 2>ce_info.txt
然后判断文件大小,为0则为编译成功,否则错误.
回复 支持 反对

使用道具 举报

发表于 2008-3-17 11:04:37 | 显示全部楼层
兄弟的程序应该没什么问题,只是
gcc -o test test.c
如果程序编译正确,本来就不会输出错误。

我试过一个使用一个错误的程序,没问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表