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_errlist
e _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