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 に答える