FILE *pFile = nullptr;
errno_t err=::_tfopen_s(&pFile, _T("E:/test.log"), _T("rb"));
if(err == 0)
{
cout << "文件打开成功。输入一个只继续进行:" << endl;
int a = 0;
cin >> a;
}
else
{
cout << "文件打开失败" << endl;
}
if(pFile)
{
::fclose(pFile);
pFile = nullptr;
}
测试1:
两个进程都使用 rb 打开文件,那么两个进程都会“文件打开成功”
测试1:
进程一使用 rb 打开文件,文件打开成功
进程二使用 wb 打开文件,文件打开失败
或者
进程一使用 wb 打开文件,文件打开成功
进程二使用 rb 打开文件,文件打开失败
结论:当多个进程对同一文件 进行“只读”,
没必要使用 共享读的方式 pFile = ::_fsopen(filePath.c_str(), ("rb"), _SH_DENYWR);
本文通过C++代码演示了在不同模式下,多个进程尝试访问同一文件时的行为。实验结果显示,当两个进程均以只读模式打开文件时,操作均能成功;然而,当一个进程以写入模式打开文件时,另一个进程再尝试以读取或写入模式打开同一文件则会失败。这表明操作系统默认不允许同时读写访问。

424

被折叠的 条评论
为什么被折叠?



