记录一下:文件指针向文件描述符转换的时候用fileno()函数没问题,然而文件描述符向文件指针转换的时候却出现问题,大于2以上的值就出错 用fdopen()函数。
结果采用iob_func()函数却可以,暂时记录一下,后面有时间再探讨其中的原因。
char* s = "hello k7k!";
FILE* fp1 = fopen("x.txt", "w+");
fprintf(fp1, "%s\n", s);
int fd1 = fileno(fp1);
printf("t1 fd:%d \n", fd1);
FILE* fp2 = (&__iob_func()[fd1]);
fprintf(fp2, "%s\n", s);
int fd2 = fileno(fp2);
printf("t2 fd:%d \n", fd2);
这样没问题。iob_func()函数原理到底是咋样的.