首页
社区
课程
招聘
[求助]feof()的底层实现
发表于: 2009-12-17 16:29 5058

[求助]feof()的底层实现

2009-12-17 16:29
5058
大家都知道,feof()可以判断文件的结束标志,但一直不明白feof是怎么用api实现的,请教一下大家代码或解释。
fead()是不是简单的调用了readfile()?
在vc中。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 538
活跃值: (460)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
102383C0 >  55              push    ebp
102383C1    8BEC            mov     ebp, esp
102383C3    8B45 08         mov     eax, dword ptr [ebp+8]
102383C6    8B40 0C         mov     eax, dword ptr [eax+C]
102383C9    83E0 10         and     eax, 10
102383CC    5D              pop     ebp
102383CD    C3              retn

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
好像是判断 iobuf 中的 _flag 标志吧
2009-12-17 17:32
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
判断标志。。
2009-12-18 18:24
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
fead()是调用了ReadFile实现,但不是简单的封装。
fead用CriticalSection来同步一个缓冲区,读出的数据其实是从这个缓冲区拷贝出去的,如果这个缓冲区里没东西了才调用ReadFile去读一大块进来。
2009-12-18 18:55
0
雪    币: 242
活跃值: (418)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
5
VC2008 Professional Edition\VC2008\crt\src\feoferr.c
- defines feof() and ferror()
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
/:^]
2009-12-19 04:10
0
游客
登录 | 注册 方可回帖
返回
//