c - c Windows多线程文件锁定

在Windows上,是否有任何简便的方法可以以独有的方式(在我的软件中进行读写)用多线程C代码锁定文件?我已经尝试过LockFileEx,但是它仅在进程之间起作用,而不能用于线程(同一进程)。

注意:我的问题是我做了一个小的文件服务器(多线程),当请求文件时,必须以独占方式访问请求的“ file1.txt”,但如果另一个线程“ B”想要使用该文件之前必须等待的相同“ file1.txt”。如果线程“ A”使用dwSharedMode为“ 0”的CreateFile()来打开/创建“ file1.txt”,请确保仅读取或打开此文件,如果线程“ B”尝试打开“ file1”,则会发生实际错误。文本文件”。现在,线程“ B”如何在“ file1.txt”上等待?

最佳答案

通过在dwShareMode功能中将0设置为CreateFile(),可以以独占模式打开文件。

在此处阅读更多信息:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363874(v=vs.85).aspx

本文翻译自 https://stackoverflow.com/questions/15606880/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 c windows multithreading filelock


相关文章:

mysql - C中是否为不同的RDBMS提供统一的API?

windows - git(ssh_exchange_identification)连接由peer重置(windows,gitlab)

node.js - NativeScript Sidekick-UnhandledPromiseRejectionWarning:未定义原始语言

python - 在Pyqt中创建QPolygon的这段代码正在停止我的应用程序!救命?

android - Android线程问题

c++ - 如何在不显示Win32 GUI程序的控制台窗口的情况下执行子控制台程序?

c - 枚举一组子集的排列

python - CPython解释器如何处理OOP

java - 执行器框架可处理100万条记录

java - 此排队系统是否有模式以及示例Java代码?