我可以使用fscanf将stdout作为FILE流吗?

时间:2014-06-12 10:21:51

标签: c file-io

我想获得stdout的内容。 我可以使用以下代码段,还是错误的?

FILE *fd;
char a;
fd = fopen("filename","wa+");

// if statement to check if fd is NULL or not
// then :

do
{
    fscanf(stdout,"%c",&a);
    fprintf(fd,"%c",a); 
} while(a!=EOF);

1 个答案:

答案 0 :(得分:0)

以下剪辑应该可以解决问题。创建一个连接到stdout的管道并从中读取:

int fds[2];
pipe(fds);
dup2(fds[1], stdout);
fscanf(fds[0],"%c",&a);