我有一个应用程序可以读取一组数据文件并执行一些模型计算。程序本身不需要修改数据文件,所以我目前使用只读标志打开它们,如下所示:
FILE* file;
if(_wfopen_s(&file, fname.c_str(), L"r") == 0)
...
我想让我的程序的多个实例同时运行,使用相同的数据集,但对数据执行不同的计算。我的程序都不需要修改数据文件。由于数据文件非常大,我无法制作单独的数据副本以供每个程序使用。
我假设因为我以只读权限打开文件,所以两个程序可能同时从同一个文件中读取。相反,我收到各种错误,例如“文件无法打开,因为它正在被另一个进程使用”。
由于我的开发环境是 Windows 7,这个问题表明这可能是启用读取共享的问题。但是,该线程中的所有答案都依赖于CreateFile,而我正在处理使用 stdio.h 编写的遗留代码。
有没有一种方法可以让多个程序使用 fopen 函数类同时从文件中读取?