fclose, _fcloseall

Chiude un flusso (fclose) o chiude tutti i flussi aperti (_fcloseall).

Sintassi

int fclose(
   FILE *stream
);
int _fcloseall( void );

Parametri

stream
Puntatore alla struttura FILE .

Valore restituito

fclose restituisce 0 se il flusso è stato chiuso correttamente. _fcloseall restituisce il numero totale di flussi chiusi. Entrambe le funzioni restituiscono EOF per indicare un errore.

Osservazioni:

La funzione fclose chiude stream. Se stream è NULL, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, fclose imposta errno su EINVAL e restituisce EOF. È consigliabile controllare sempre il stream puntatore prima di chiamare questa funzione.

Per altre informazioni sui codici restituiti, vedere errno, _doserrno, _sys_errliste _sys_nerr.

La funzione _fcloseall chiude tutti i flussi aperti, tranne stdin, stdout, stderr (e in MS-DOS, _stdaux e _stdprn). Chiude anche 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 nel sistema vengono rilasciati quando viene chiuso il flusso. I buffer assegnati dall'utente con setbuf e setvbuf non vengono rilasciati automaticamente.

Nota

Quando fclose o _fcloseall le funzioni vengono usate per chiudere un flusso, anche il descrittore di file sottostante e l'handle di file del sistema operativo (o socket) vengono chiusi. Pertanto, se il file è stato originariamente aperto come handle di file o descrittore di file e viene chiuso con fclose, non chiamare _close anche per chiudere il descrittore di file e non chiamare la funzione CloseHandle Win32 per chiudere l'handle di file.

fclose e _fcloseall includono codice per la protezione da interferenze di altri thread. Per una versione che non blocca di fclose, vedere _fclose_nolock.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
fclose <stdio.h>
_fcloseall <stdio.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Vedere l'esempio per fopen.

Vedi anche

I/O di flusso
_close
_fdopen, _wfdopen
fflush
fopen, _wfopen
freopen, _wfreopen