首页
社区
课程
招聘
[讨论]记事本的这个功能是如何实现的?
发表于: 2010-1-2 01:29 5128

[讨论]记事本的这个功能是如何实现的?

2010-1-2 01:29
5128
随便打开一个文件,然后用process explorer观察

发现并没有这个文件的句柄,只有这个文件所在目录的句柄

没文件句柄,读/写等功能如何实现?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 242
活跃值: (453)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
2
所以记事本没有同步显示文件内容更新的功能。
2010-1-2 04:29
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个很正常啊
2010-1-2 09:50
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
读完到内存然后就关闭句柄了吧
2010-1-2 09:53
0
雪    币: 12
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
CreateFileMapping
2010-1-2 10:21
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
CreateFileMapping也要文件句柄的,另外看它打开大文件的速度就知道不是内存映射了
2010-1-2 12:39
0
雪    币: 203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
确实,速度太快,process explorer看不出来

要用process monitor看
2010-1-2 14:18
0
雪    币: 4399
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
notepad打开文件就是内存映射
你打开任何文件之后就和硬盘上的文件没有关系了,只有在读取和写入时拿句柄,这个你可以用filemon看下,notepad在打开任何文件后并没有创建临时文件,而notepad++则有一个线程监视当前文件,所以notepad++可以在打开文件后还能读取到文件句柄。
另外notepad打开10mb以上,不需要10mb,反正大一点的文件速度明显非常慢。
2010-1-2 14:53
0
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
9
就是用CreateFileMapping了,读文件时采用缺页中断
2010-1-2 18:10
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
全文件读入内存,读完后句柄就释放了.
2010-1-3 11:32
0
游客
登录 | 注册 方可回帖
返回
//