写入CPP文件的随机错误

时间:2015-07-17 06:20:34

标签: c++ io itk

我有两个用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();
  }

1 个答案:

答案 0 :(得分:0)

也许是ifstream阻止了它(见https://stackoverflow.com/a/750914/1136458)。检查在调用B时是否已调用ifstream的析构函数,或者尝试不再使用ifstream。

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