C语言文件指针和文件描述符相互转换

来源:互联网 发布:淘宝小号实名认证 编辑:程序博客网 时间:2024/05/22 04:26

       记录一下:文件指针向文件描述符转换的时候用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()函数原理到底是咋样的.

0 0
原创粉丝点击