fclose, _fcloseall
Chiude un flusso (fclose) o chiude tutti i flussi aperti (_fcloseall).
int fclose(
FILE *stream
);
int _fcloseall( void );
Parametri
- stream
Puntatore alla struttura FILE.
Valore restituito
fclose restituisce 0 se il flusso viene chiuso correttamente. _fcloseall restituisce il numero totale di flussi chiusi. Entrambe le funzioni restituiscono EOF per indicare un errore.
Note
La funzione fclose chiude stream. Se stream è NULL, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se all'esecuzione è consentito continuare, fclose imposta errno al valore EINVAL e restituisce EOF. Si raccomanda che il puntatore di stream viene controllato sempre prima di chiamare la funzione.
Vedere _doserrno, errno, _sys_errlist, e _sys_nerr per ulteriori informazioni su questi, e altri, codici di errore.
La funzione _fcloseall chiude tutti i flussi aperti tranne stdin, stdout, stderr (e, in MS-DOS, _stdaux e _stdprn). Inoltre termina ed elimina tutti i file temporanei creati da tmpfile. In entrambe le funzioni, tutti i buffer associati al flusso vengono scaricati prima della chiusura. I buffer allocati di sistema vengono rilasciati quando il flusso viene chiuso. I buffer assegnati dall'utente con setbuf e setvbuf non vengono automaticamente eliminati.
Nota: Quando queste funzioni vengono utilizzate per chiudere un flusso, il descrittore del file sottostante e un handle di file del sistema operativo (o socket) vengono chiusi, come il flusso. Pertanto, se il file è stato originariamente aperto come handle di file o descrittore di file e chiuso con fclose, non si deve chiamare anche _close per chiudere il descrittore del file; non si deve chiamare la funzione Win32 CloseHandle per chiudere gli handle di file.
fclose e _fcloseall includono codice per proteggersi da interferenze da parte di altri thread. Per una versione non bloccante di fclose, vedere _fclose_nolock.
Requisiti
Funzione |
Intestazione obbligatoria |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Esempio
Vedere l'esempio relativo a fopen.