两个程序读写同一个文件,如何避免冲突????????????

解决方案 »

  1.   

    首先得保证共享读写。
    至于同步,可以用Mutex;当然也可以由一个程序来完成读写,另一个进程通过IPC机制来控制。
      

  2.   

    异步处理
    3个方式,CEvent,CMutex,临界区
    个人觉得临界区效率高些
    简单举个例子
    CRITICAL_SECTION hSection;EnterCriticalSection(&hSection);
    //your code
    LeaveCriticalSection(&hSection);  
    别忘记对hSection初始化
      

  3.   

    这里有一个临界区的例子:http://www.vckbase.com/document/viewdoc/?id=727
      

  4.   

    HANDLE CreateFile(
      LPCTSTR lpFileName,
      DWORD dwDesiredAccess,
      DWORD dwShareMode,
      LPSECURITY_ATTRIBUTES lpSecurityAttributes,
      DWORD dwCreationDisposition,
      DWORD dwFlagsAndAttributes,
      HANDLE hTemplateFile
    );将 dwShareMode 设置为FILE_SHARE_READ就可以了
      

  5.   

    an_bachelor的意思是楼上的方法都不对?
    那什么方法好?
      

  6.   

    http://debut.cis.nctu.edu.tw/~ching/Course/AdvancedC++Course/__Page/Slides/06%20Thread%20Synchronization%20with%20kernel%20object/CreateEventDemo.zip
      

  7.   

    楼上大哥给的也只是自己CreateProcess两个子进程,然后就用EVENT互斥滴如果为两个完全独立的进程咧?我用#pragma seg("share");(里面有读或写的BOOL变量)共享段行吧,
    两个应用程序都加载此DLL,然后通过其变量值判断行不咯?
      

  8.   

    CMutex这样的不算内核对象吗但这也好像局限于一个进程内吧
      

  9.   

    Mutex可以在进程间共享而CriticalSection不能,我指windows操作系统