0

我有以下代码示例(在 Windows 中):

int fd = _dup(fileno(stdout));
freopen("tmp","w",stdout);

printf("1111");
close(stdout);

char buf[100];

FILE *fp;   
fp = fopen("tmp","r");//in this line fd turns to be 0
if(NULL == fp) return -1;
if(fgets(buf,100 , fp) != NULL );
else return -1
fclose(fp);

我需要 fd 的值以备将来使用。如何在不丢失fd值的情况下从文件中读取?

4

1 回答 1

0

我敢打赌,要么 buf 被声明小于 100,要么 fgets 调用实际上是一个大于 100 的数字。

于 2011-10-11T12:24:19.950 回答