У меня есть следующий пример кода (в 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
?