fopen函数的执行流程:
1.加锁FILE流数组;
2.调用__getfp(void)去遍历_streams[];
2.1该函数通过判断FILE的fd域,找到小于0的(即可使用的,正在被使用的均大于0),就返回FILE指针,当遍历完还未找到则返回NULL。
3.当__getfp(void)返回非NULL,则调用__topenfp()去:
3.1该函数调用CheckOpenType()测试打开模式字符串;
3.2还调用___topen()去根据3.1返回的参数去打开磁盘文件和创建一些磁盘文件操作资源;
4.解锁FILE流数组;
返回FILE结构体指针。
阅读(659) | 评论(1) | 转发(0) |