我正在编写应用程序来读取 DICOM 文件,我必须使用其他库来执行此操作。我发现库会打开文件,但完成后不会关闭文件。而且该库不是开源的。我知道在 Linux 中打开文件的限制是 1024,我可以更改这个数字。但我不想这样做。我喜欢关闭库打开的文件。如果我知道它正在打开,如何在 C 中关闭文件。我正在使用从http://cbi.nyu.edu/software/dinifti.php获得的 DICOM2NII 库。这是打开文件的代码,但它没有关闭
bool DICOMImage::OpenFile(const char *path)
{
bool retValue = true;
DCM_Objects handle_;
unsigned long options = DCM_ORDERLITTLEENDIAN | DCM_FORMATCONVERSION | DCM_VRMASK;
// Try opening as PART10, if it fails it's might be bcause it does not have
// a preable and the try it that way
if ( DCM_OpenFile(path, options | DCM_PART10FILE, &handle_) != DCM_NORMAL )
{
DCM_CloseObject(&handle_);
COND_PopCondition(TRUE);
if ( DCM_OpenFile(path, options, &handle_) != DCM_NORMAL )
{
retValue = false;
}
else
retValue=true;
}
return retValue;
}