将stdout重定向到没有ANSI警告的文件

时间:2011-08-31 03:28:21

标签: c ansi

我一直试图让程序的STDOUT重定向到文件。到目前为止,这段代码效果很好:

FILE *output = fopen("output","w");
if (dup2(fileno(output),1) == -1)
{
    /* An error occured. */
    exit(EXIT_FAILURE);
}

问题是,我试图坚持ANSI C,而fileno不是ANSI。当我使用gcc编译时,我收到警告:

gcc -Wall -ansi -pedantic
warning: implicit declaration of function ‘fileno’

有没有办法将STDOUT重定向到ansi C中的文件?

1 个答案:

答案 0 :(得分:2)

ANSI C的方法是freopen()

if (freopen("output", "w", stdin) == NULL) {
    /* error occured */
    perror("freopen");
}