- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在用 C++ 实现一些文件系统。到目前为止,我一直在使用 fstream
,但我意识到无法以独占模式打开它。由于线程很多我想允许多次读取,而以写入模式打开文件时我想以独占模式打开文件?
最好的方法是什么?我认为 Boost
提供了一些功能。还有其他可能吗?我也想看看简单的例子。如果用 C++ 做起来不容易/不好,我也可以用 C 来写。
我正在使用 Windows。
最佳答案
在许多操作系统上,这是不可能的,所以 C++不支持它。您必须编写自己的 streambuf
。如果您担心的唯一平台是 Windows,您可以可能使用它提供的打开独占模式。但是,您更有可能希望使用某种文件锁定,更精确,并且在大多数情况下可用所有平台(但不可移植——你需要 LockFileEx
在 Windows 下,fcntl
在 Unix 下)。
在 Posix 下,您还可以使用 pthread_rwlock
。布滕霍夫给出了使用经典互斥锁的实现和条件变量,存在于 C++11 中,因此您可以实际上实现了一个便携版本(提供所有的读者和作者在同一个进程中——Posix请求将跨进程边界工作,但这不是对于 C++ 线程原语为真)。
关于c++ - 如何在C++中以独占模式打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141018/
当我在其中一个扬声器上打开独占模式音频流时,会发出奇怪的嗡嗡声。这种嗡嗡声不会在我的其他设备上的相同条件下发生,也不会在一般的独占推送模式或共享模式下发生。 问题似乎是 WASAPI 将周期设置为比我
我的一个类中有一个 double 值,并且有一个上限。 问题是当我尝试将此变量设置为大于其限制的值时。当发生这种情况时,我想将其设置为限制内最接近的值。 当我尝试时,尴尬的情况发生了 .getLimi
我有锁定每个函数(某个库的)的代码,我想对其进行优化。给定函数A和B ,我不介意A与任何其他同时运行 A ,或任何 B与任何其他同时运行 B ,但没有A可以在任何 B 时运行正在运行,反之亦然。线程计
当 XML 必须根据 http://www.w3.org/TR/xml-exc-c14n/ 规范化时,下面的 XML 片段应该相等吗?(注意,. 字符代表一个 ' ' 空格) . ..data .
我想限制对整个应用程序的访问 /*但对于某些 Servlet 则不然。它们应该是公开的。 有没有一种方法可以轻松做到这一点(我想象有一些排除或可能覆盖?)或者我是否必须将文件排列在子文件夹中并允许访问
在一个 spring-mvc 项目中,我对索引/主页的内容进行了测试: @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockM
完全依赖 ARKit 自动平面检测是我不想做的事情,因为它需要时间来检测表面,然后现实生活中的表面应该有足够的纹理,因此我需要考虑一些事情提供一个选项,如果我愿意,我应该能够通过点击按钮随意添加 an
我是一名优秀的程序员,十分优秀!