【问题标题】:c++ file synchronization issuesc++文件同步问题
【发布时间】:2012-12-28 18:17:58
【问题描述】:

我有将数据写入/读取文件的 c++ 程序(turbo c++ ver 3)。 当程序的多个实例运行并在特定执行点时,当程序的两个实例同时打开并写入文件时,会丢失一些信息

if(!filein)

不适合这种情况。我猜这是同步的问题

有什么方法可以在执行任何操作之前检查文件是否已打开

谢谢

【问题讨论】:

  • 请发布更多代码。就像用于打开文件的代码一样。
  • 你需要文件锁,标准库中没有实现。看到这个问题:stackoverflow.com/q/839856/1175253
  • 您需要一个互斥锁来协调对文件的访问。您可以使用操作系统 API 吗?如果是这样,您的目标是什么平台?
  • @CareyGregory 它不是一个复杂的程序。我是一个绝对的初学者,我不知道你在说什么
  • @Sam 我正在使用 Turbo C++。我找不到任何 LockFileEx() 但有 lock();我可以用吗

标签: c++ turbo-c++


【解决方案1】:

如果您有可用的 boost,那么最简单/最好的方法是使用 boost::interprocess::file_lock (docs) 将互斥锁嵌入到文件本身中

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多