把行信息打印到stdio窗口,然后再有一行到文件,接着又有一行到stdio屏幕。
先来看一个错误的例子
#include <ansi_c.h>
int main (int argc, char *argv[])
{
FILE *copy;
printf ("This is printed to screen!\n");
copy = stdout;
stdout = fopen ("stdio test.txt", "w");
printf ("This is printed to a file!\n");
fclose (stdout);
stdout = copy;
printf ("Where is this line?\n");
return 0;
}
类似于copy = stdout;直接的赋值是不可行的,应该要用dup,dup2,正确的应该是下面这样的
#include <stdio.h>
#ifdef unix
#include <unistd.h>
#endif
#ifdef WIN32
#include <io.h>
#define fileno _fileno
#defi