私は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;
}