fopen函数的执行流程
时间:2010-10-14 来源:houbangen
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结构体指针。
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结构体指针。
相关阅读 更多 +