写入 CPP 文件的随机错误

Random error to write into a file in CPP

我有两个用 c++ 编写的程序(为了简化它是 A 和 B)。 A 和 B 使用 ITK,A 也使用 Boost。我使用以下程序:

A​​调用B。B创建一个文件并写入。然后A读了。

有时,B 无法创建文件,有时 A 也无法读取。但不总是。 我试图添加一个前置步骤:A 创建文件。但这并没有改变任何东西。

你听说过这种行为吗?你有什么想法吗?

A​​ 使用基本 std::ifstream,B 使用:

itk::TransformFileWriter::Pointer affineWriter;
  affineWriter = itk::TransformFileWriter::New();
  if( dofoutName != NULL )
  {
          affineWriter->SetFileName( dofoutName );
          affineWriter->SetInput( finalTransform   );
          affineWriter->Update();
  }

可能是 ifstream 阻止了它(参见 )。调用B时检查ifstream的析构函数是否已经调用,或者尽量不要使用ifstream

如果这还不够并且您在 Windows,您可以调试您的应用程序,停止它并检查 ProcessExplorer 哪个句柄正在锁定您的文件