I/O di flussoStream I/O

Queste funzioni elaborano dati di diverse dimensioni e formati, da singoli caratteri a strutture dati di grandi dimensioni.These functions process data in different sizes and formats, from single characters to large data structures. Forniscono anche il buffering, migliorando le prestazioni.They also provide buffering, which can improve performance. Le dimensioni predefinite del buffer del flusso sono 4 KB.The default size of a stream buffer is 4K. Queste routine influiscono solo su buffer creati dalle routine di libreria di runtime e non hanno alcun effetto sui buffer creati dal sistema operativo.These routines affect only buffers created by the run-time library routines, and have no effect on buffers created by the operating system.

Routine di I/O di flussoStream I/O Routines

RoutineRoutine UsaUse
clearerr, clearerr_sclearerr, clearerr_s Eliminare l'indicatore di errore per il flussoClear error indicator for stream
fclosefclose Chiudere il flussoClose stream
_fcloseall_fcloseall Chiudere tutti i flussi aperti tranne stdin, stdout e stderrClose all open streams except stdin, stdout, and stderr
_fdopen, wfdopen_fdopen, wfdopen Associare il flusso a un descrittore di file del file apertoAssociate stream with file descriptor of open file
feoffeof Test per la fine del file sul flussoTest for end of file on stream
ferrorferror Test per l'errore sul flussoTest for error on stream
fflushfflush Svuotare il flusso dal buffer o dal dispositivo di archiviazioneFlush stream to buffer or storage device
fgetc, fgetwcfgetc, fgetwc Leggere un carattere dal flusso (versioni funzione di getc e getwc)Read character from stream (function versions of getc and getwc)
_fgetchar, _fgetwchar_fgetchar, _fgetwchar Leggere un carattere da stdin (versioni funzione di getchar e getwchar)Read character from stdin (function versions of getchar and getwchar)
fgetposfgetpos Ottenere l'indicatore di posizione del flussoGet position indicator of stream
fgets, fgetwsfgets, fgetws Leggere una stringa dal flussoRead string from stream
_fileno_fileno Ottenere il descrittore di file associato al flussoGet file descriptor associated with stream
_flushall_flushall Svuotare tutti i flussi dal buffer o dal dispositivo di archiviazioneFlush all streams to buffer or storage device
fopen, _wfopen, fopen_s, _wfopen_sfopen, _wfopen, fopen_s, _wfopen_s Aprire il flussoOpen stream
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_lfprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l Scrivere dati formattati in un flussoWrite formatted data to stream
fputc, fputwcfputc, fputwc Scrivere un carattere in un flusso (versioni funzione di putc e putwc)Write a character to a stream (function versions of putc and putwc)
_fputchar, _fputwchar_fputchar, _fputwchar Scrivere un carattere in stdout (versioni funzione di putchar e putwchar)Write character to stdout (function versions of putchar and putwchar)
fputs, fputwsfputs, fputws Scrivere una stringa nel flussoWrite string to stream
freadfread Leggere dati non formattati da un flussoRead unformatted data from stream
freopen, _wfreopen, freopen_s, _wfreopen_sfreopen, _wfreopen, freopen_s, _wfreopen_s Riposizionare il puntatore del flusso FILE in un nuovo file o dispositivoReassign FILE stream pointer to new file or device
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_lfscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l Leggere dati formattati da un flussoRead formatted data from stream
fseek, _fseeki64fseek, _fseeki64 Spostare la posizione del file nel percorso specificatoMove file position to given location
fsetposfsetpos Impostare l'indicatore di posizione del flussoSet position indicator of stream
_fsopen, _wfsopen_fsopen, _wfsopen Aprire il flusso con condivisione di fileOpen stream with file sharing
ftell, _ftelli64ftell, _ftelli64 Ottenere la posizione corrente del fileGet current file position
fwritefwrite Scrivere gli elementi di dati non formattati nel flussoWrite unformatted data items to stream
getc, getwcgetc, getwc Leggere un carattere dal flusso (versioni macro di fgetc e fgetwc)Read character from stream (macro versions of fgetc and fgetwc)
getchar, getwchargetchar, getwchar Leggere un carattere da stdin (versioni macro di fgetchar e fgetwchar)Read character from stdin (macro versions of fgetchar and fgetwchar)
_getmaxstdio_getmaxstdio Restituisce il numero dei file aperti contemporaneamente consentito a livello di I/O del flusso.Returns the number of simultaneously open files permitted at the stream I/O level.
gets_s, _getws_sgets_s, _getws_s Leggere una riga da stdinRead line from stdin
_getw_getw Leggere int binari da un flussoRead binary int from stream
printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_lprintf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l Scrivere dati formattati in stdoutWrite formatted data to stdout
putc, putwcputc, putwc Scrivere un carattere in un flusso (versioni macro di fputc e fputwc)Write character to a stream (macro versions of fputc and fputwc)
putchar, putwcharputchar, putwchar Scrivere un carattere in stdout (versioni macro di fputchar e fputwchar)Write character to stdout (macro versions of fputchar and fputwchar)
puts, _putwsputs, _putws Scrivere una riga nel flussoWrite line to stream
_putw_putw Scrivere int binari in un flussoWrite binary int to stream
rewindrewind Spostare la posizione del file all'inizio di un flussoMove file position to beginning of stream
_rmtmp_rmtmp Rimuovere i file temporanei creati da tmpfileRemove temporary files created by tmpfile
scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_lscanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l Leggere dati formattati da stdinRead formatted data from stdin
setbufsetbuf Controllare il buffering del flussoControl stream buffering
_setmaxstdio_setmaxstdio Impostare un massimo per il numero dei file aperti contemporaneamente al livello del flusso I/O.Set a maximum for the number of simultaneously open files at the stream I/O level.
setvbufsetvbuf Controllare il buffering del flusso e la dimensione del bufferControl stream buffering and buffer size
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l Scrivere dati formattati di lunghezza specificata in una stringaWrite formatted data of specified length to string
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l Legge i dati formattati di lunghezza specificata dal flusso dello standard inputRead formatted data of a specified length from the standard input stream.
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_lsprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l Scrivere dati formattati in una stringaWrite formatted data to string
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_lsscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l Leggere dati formattati da una stringaRead formatted data from string
_tempnam, _wtempnam_tempnam, _wtempnam Creare il filename temporaneo nella directory specificataGenerate temporary filename in given directory
tmpfile, tmpfile_stmpfile, tmpfile_s Creare un file temporaneoCreate temporary file
tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_stmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s Creare un filename temporaneoGenerate temporary filename
ungetc, ungetwcungetc, ungetwc Inserire caratteri in coda al flussoPush character back onto stream
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l Scrivere dati formattati nella console.Write formatted data to the console.
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_lvfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l Scrivere dati formattati in un flussoWrite formatted data to stream
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_lvprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l Scrivere dati formattati in stdoutWrite formatted data to stdout
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l Scrivere dati formattati di lunghezza specificata nel bufferWrite formatted data of specified length to buffer
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_lvsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l Scrivere dati formattati nel bufferWrite formatted data to buffer

Quando un programma inizia l'esecuzione, il codice di avvio apre automaticamente più flussi: standard input (a cui punta stdin), standard output (a cui punta stdout) e standard error (a cui punta stderr).When a program begins execution, the startup code automatically opens several streams: standard input (pointed to by stdin), standard output (pointed to by stdout), and standard error (pointed to by stderr). I flussi vengono indirizzati alla console (tastiera e schermo) per impostazione predefinita.These streams are directed to the console (keyboard and screen) by default. Usare freopen per reindirizzare stdin, stdout o stderr a un file su disco o a un dispositivo.Use freopen to redirect stdin, stdout, or stderr to a disk file or a device.

I file aperti mediante le routine del flusso vengono memorizzati nel buffer per impostazione predefinita.Files opened using the stream routines are buffered by default. Le funzioni stdout e stderr vengono scaricate ogni volta che sono piene o, se si sta scrivendo su un dispositivo a caratteri, dopo ogni chiamata della libreria.The stdout and stderr functions are flushed whenever they are full or, if you are writing to a character device, after each library call. Se un programma termina in modo anomalo, è possibile che i buffer di output non vengano scaricati, con conseguente perdita di dati.If a program terminates abnormally, output buffers may not be flushed, resulting in loss of data. Usare fflush o _flushall per assicurarsi che il buffer associato a un file specificato o tutti i buffer aperti vengano scaricati nel sistema operativo, che può memorizzare i dati nella cache prima di scriverli su disco.Use fflush or _flushall to ensure that the buffer associated with a specified file or all open buffers are flushed to the operating system, which can cache data before writing it to disk. La funzionalità di commit su disco garantisce che il contenuto del buffer scaricato non vada perduto nel caso di un errore di sistema.The commit-to-disk feature ensures that the flushed buffer contents are not lost in the event of a system failure.

Esistono due modi per eseguire il commit del contenuto del buffer su disco:There are two ways to commit buffer contents to disk:

  • Eseguire il collegamento con il file COMMODE.OBJ per impostare un flag globale di commit.Link with the file COMMODE.OBJ to set a global commit flag. L'impostazione predefinita del flag globale è n, per "no-commit".The default setting of the global flag is n, for "no-commit."

  • Impostare il flag della modalità su c con fopen o _fdopen.Set the mode flag to c with fopen or _fdopen.

    Qualsiasi file specificatamente aperto con il flag c o n si comporta in base al flag, indipendentemente dallo stato del flag globale di commit/no-commit.Any file specifically opened with either the c or the n flag behaves according to the flag, regardless of the state of the global commit/no-commit flag.

    Se il programma non chiude in modo esplicito un flusso, il flusso viene automaticamente chiuso quando il programma termina.If your program does not explicitly close a stream, the stream is automatically closed when the program terminates. Tuttavia, è necessario chiudere un flusso al termine di un programma, perché il numero di flussi che possono essere aperti contemporaneamente è limitato.However, you should close a stream when your program finishes with it, as the number of streams that can be open at one time is limited. Per informazioni sul questo limite, vedere _setmaxstdio .See _setmaxstdio for information on this limit.

    L'input può usare direttamente l'output solo con una chiamata corrispondente a fflush o a una funzione di posizionamento di file (fseek, fsetpos o rewind).Input can follow output directly only with an intervening call to fflush or to a file-positioning function (fseek, fsetpos, or rewind). L'output può seguire l'input senza una corrispondente chiamata a una funzione di posizionamento dei file se l'operazione di input rileva la fine del file.Output can follow input without an intervening call to a file-positioning function if the input operation encounters the end of the file.

Vedere ancheSee Also

Input e outputInput and Output
Routine di Universal C Runtime per categoriaUniversal C runtime routines by category