Je suis en train d'écrire une application pour lire des fichiers DICOM et je dois utiliser une autre bibliothèque pour le faire. J'ai remarqué que la bibliothéque ouvre le fichier mais ne le ferme pas à la fin. De plus, cette bibliothèque n'est pas open source. Je sais que la limitation d'ouverture de fichiers est de 1024 sous Linux et que je peux modifier ce nombre. Cependant, je ne veux pas faire de cette façon. Je préfère fermer le fichier ouvert par la bibliothèque. Comment fermer un fichier en C si je sais qu'il est ouvert? J'utilise la bibliothèque DICOM2NII qui est disponible sur http://cbi.nyu.edu/software/dinifti.php. Voici le code pour ouvrir un fichier mais qui ne le ferme pas :
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;
}