举例说明问题:两个进程A,B!A中执行:  两条语句:  (1)判断1.txt文件存在不        (2)如果不存在1.txt,就创建一个1.txt!
B中执行:两条语句 :   (3)创建一个1.txt             (4)写入内容!
(假设他们创建的1.txt都在同一个目录)问题:A进程执行,执行(1)语句后,1.txt不存在,准备执行(2)语句创建1.txt!!  这时:CPU切换到B进程,然后执行了(3),(4)语句!   这时再返回A进程 执行了(2)语句!   这不就把B中写入的东西全部给清除了么?   如果B这时要利用1.txt中的内容,将会得不到正确的内容啊!请问有什么办法解决! A 进程是我写的, B进程是其他人写的!

解决方案 »

  1.   


    注意哦: A进程是我自己写的 我可以保证! 但是B进程 是别人写的   如果他没有同步呢?就像我写了一个A进程是QQ  , B 进程是360     他们可没有联系啊!我只是举出这个问题而已     ! 讨论一下!
      

  2.   


    有什么办法么?  文件系统  API 对这种 有保障么?
      

  3.   

    不知道hook createfile不知道可以不,如果hook是要创建的a.txt后,如果是自己创建的,就创建,如果发现时b进程创建的,就查看这个时候a.txt是否存在,如果存在,可以决定这个是否要创建。
      

  4.   

    文件锁,LockFileEx UnlockFileEx