写入 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 哪个句柄正在锁定您的文件
我有两个用 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 哪个句柄正在锁定您的文件