您的位置:首页 > 编程语言 > C语言/C++

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

2016-12-21 19:32 260 查看
       记录一下:文件指针向文件描述符转换的时候用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()函数原理到底是咋样的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐