两个程序读写同一个文件,如何避免冲突???????????? 两个程序读写同一个文件,如何避免冲突???????????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先得保证共享读写。至于同步,可以用Mutex;当然也可以由一个程序来完成读写,另一个进程通过IPC机制来控制。 异步处理3个方式,CEvent,CMutex,临界区个人觉得临界区效率高些简单举个例子CRITICAL_SECTION hSection;EnterCriticalSection(&hSection);//your codeLeaveCriticalSection(&hSection); 别忘记对hSection初始化 这里有一个临界区的例子:http://www.vckbase.com/document/viewdoc/?id=727 HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);将 dwShareMode 设置为FILE_SHARE_READ就可以了 an_bachelor的意思是楼上的方法都不对?那什么方法好? http://debut.cis.nctu.edu.tw/~ching/Course/AdvancedC++Course/__Page/Slides/06%20Thread%20Synchronization%20with%20kernel%20object/CreateEventDemo.zip 楼上大哥给的也只是自己CreateProcess两个子进程,然后就用EVENT互斥滴如果为两个完全独立的进程咧?我用#pragma seg("share");(里面有读或写的BOOL变量)共享段行吧,两个应用程序都加载此DLL,然后通过其变量值判断行不咯? CMutex这样的不算内核对象吗但这也好像局限于一个进程内吧 Mutex可以在进程间共享而CriticalSection不能,我指windows操作系统 请教一个关于VC监视窗口的问题 各位前辈帮我看看这个代码是否线程同步执行的? 如何获得picture控件右下角那个点的坐标值? 50分诚恳求助:请问哪有快速压缩算法。特别是对内存的。 关于文件操作 各位高手,快来看看吧,一个vc程序中调用flash的问题!特急,在线等待! 请教如何使用LoadBtimap()!!急! 一个openGL的glTranslatef离奇问题 VC 如何定义一个类,可以处理消息,而且有 HWND 的?最好有 MFC 与 WTL 的方法? 一个关于鼠标光标闪烁的问题 问个mysql的问题 如何使用VC++获得局域网内所有主机的IP和主机名?
至于同步,可以用Mutex;当然也可以由一个程序来完成读写,另一个进程通过IPC机制来控制。
3个方式,CEvent,CMutex,临界区
个人觉得临界区效率高些
简单举个例子
CRITICAL_SECTION hSection;EnterCriticalSection(&hSection);
//your code
LeaveCriticalSection(&hSection);
别忘记对hSection初始化
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);将 dwShareMode 设置为FILE_SHARE_READ就可以了
那什么方法好?
两个应用程序都加载此DLL,然后通过其变量值判断行不咯?