同一个文件,a程序写,b程序读,我想在a程序写的同时锁住它不让b程序读,有没有相关的函数呢。怎么操作呢,请知道的朋友提示。

解决方案 »

  1.   

    文件打开方式吧\  shareDenyRead   
      

  2.   

    CFile::ShareDenyRead 打开文件,禁止其它进程读此文件。如果文件已被其它进程以兼容模式打开,或被其它进程读,则Create失败。那这样且不是很麻烦,a程序写,b程序还要读啊,要是以这个模式打开的话,读的程序会不会报错呢。它们之间有没有协调性的问题呢。
      

  3.   

    我觉得lz没有把情况说清楚,你的需求是建立在什么情况下的,我觉得一般有两种情况:情况1:a,b不负责打开文件,只负责读写;
           这种情况下可以人为增加一个参数,比如说是iFileStatu,每次运行a,b前先
    检查iFileStatu的值,如果为0则可以进行操作,如果不为0则不能进行操作;
           a或者b操作文件的时候,先把iFileStatu置非0,操作结束后置0,另一个检测
    iFileStatu的值,等0的时候执行;情况2:a,b负责打开文件
            设置文件为只能一个程序打开,当a打开文件的话,b是无法打开文件,b就等待在那
    边,一直尝试打开文件,直到可以打开文件后执行;
      

  4.   

    情况是这样,a程序写文件a.dat,
    b程序在不停的读,而且把它显示出来。让a,b2个程序相互协调好,不冲突,该怎么操作,就是想达到这个目的,我想不管那么多,a负责写2秒钟open,close一次问卷,b负责读,不做特殊的操作,操作系统能自己协调好呢。