首页
社区
课程
招聘
[求助]WriteFile是不是原子操作
发表于: 2008-12-2 02:42 5222

[求助]WriteFile是不是原子操作

2008-12-2 02:42
5222
1.WriteFile是不是原子操作呀?,这里的原子操作不是指lock汇编指令,而是指事务,主要是多进程之间同时写的时候,两个进程同时WriteFile(一次)写的数据是否会发生交叉,是否需要锁住文件再写数据?
2.如果有两个进程已开打开文件且者各自已写入了一段数据,进程A将文件SetEndofFile(0),将文件长度设置为0,那么进程B的WriteFile指针是否也会指向0?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不会

1.隔离操作不要老想到lock,要使用正规的方法
2..WriteFile SetEndofFile是系统函数!不存在lock这一说!!!lock指令是用于机器码级的
2008-12-2 09:18
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
貌似有LockFile函数?
2008-12-2 10:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
要看你操作的文件的handle是否通一个,而不是所在的进程。
2008-12-2 18:10
0
雪    币: 239
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
多个进程对同一个文件进程写操作问题
2008-12-2 19:42
0
雪    币: 239
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
这里的原子操作不是指lock汇编指令,而是指事务,就像数据库系统里面的事务处理,每个命令或一组命令是具有原子性的,只能成功或失败,其它命令或其它组命令不能干饶此次操作,
比如两个客户端同时向SQL数据库发送命令,客户端A发送“把数据1修改为2”,客户端“读数据1的值”
这两个命令在数据库系统里面是不能同时执行的,具有原子性,也就是说,如果客户端A命令先接受,那么就得等A命令执行完了,才能执行B命令,那么B命令结果就应该是A命令修改的结果,而不是A命令修改前或修改中的值
2008-12-2 19:52
0
游客
登录 | 注册 方可回帖
返回
//