【发布时间】:2013-05-03 19:30:15
【问题描述】:
我一直在使用类似的东西在多线程应用程序中锁定/解锁文件
void Write_File(FILE* Input_File)
{
flockfile(Input_File);
Read_Stuff();
funlock(Input_File);
}
我想将这些例程转换为使用流。我找不到与流一起使用的类似命令。有没有办法在不使用互斥锁的情况下锁定文件流?
【问题讨论】:
-
您是否只是试图阻止同一进程中的其他线程写入文件,或者“系统中的任何进程”?这些是截然不同的问题,解决方案也大不相同(或不可能,取决于系统的要求和架构)。
-
你真的在写输出之前锁定了一个输入文件吗?
-
@user315052 我真的想阅读,我编辑了代码来反映这一点。
-
@MatsPetersson:我希望它不受同一进程中的线程的影响
-
好的,然后使用
mutex,正如 Celada 下面解释的那样。它会做正确的事,并且工作得非常好。
标签: c++ multithreading locking