I/O di flusso
Questi dati di processo di funzioni in diverse dimensioni e formati, da singoli caratteri a strutture dati di grandi dimensioni. Forniscono inoltre il buffering, migliorando le prestazioni. La dimensione predefinita di un buffer del flusso è 4K. Queste routine hanno effetto solo sui buffer creati dalle routine di libreria di runtime e non hanno effetto su buffer creati dal sistema operativo.
Routine di flussi I/O
Routine |
Utilizzo |
Equivalente .NET Framework |
---|---|---|
Eliminare l'indicatore di errore per il flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Chiudere il flusso |
System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close |
|
Chiudere tutti i flussi aperti tranne stdin, stdout e stderr |
System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close |
|
Associare il flusso con il descrittore del file aperto |
||
Verifica della fine del file sul flusso |
||
Verifica degli errore nel flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Eliminare il flusso dal buffer o dal dispositivo di archiviazione |
||
Leggere i caratteri dal flusso (versioni di funzione di getc e di getwc) |
||
Leggere caratteri da stdin (versioni di funzione di getchar e di getwchar) |
||
Ottenere l'indicatore di posizione del flusso |
||
Leggere una stringa dal flusso |
System::IO::StreamReader::ReadLine, System::IO::TextReader::ReadBlock |
|
Ottenere il descrittore di file associato al flusso |
||
Svuotare tutti i flussi dal buffer o dal dispositivo di archiviazione |
System::IO::FileStream::Flush, System::IO::StreamWriter::Flush, System::IO::TextWriter::Flush, System::IO::BinaryWriter::Flush |
|
Aprire il flusso |
||
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l |
Scrivere dati formattati in un flusso |
|
Scrivere un carattere in un flusso (versioni di funzione di putc e di putwc) |
||
Scrivere il carattere sullo stdout (versioni di funzione di putchar e di putwchar) |
||
Scrivere una stringa nel flusso |
||
Leggere dati non formattati da un flusso. |
||
Riposizionare il puntatore del flusso FILE al nuovo file o dispositivo |
||
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l |
Leggere dati formattati da un flusso |
System::IO::StreamReader::ReadLine; vedere anche i metodi di Parse, come System::Double::Parse. |
Spostare la posizione del file nel percorso specificato |
System::IO::FileStream::Position, System::IO::FileStream::Seek |
|
Impostare l'indicatore di posizione del flusso |
||
Aprire il flusso con condivisione di file |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Ottenere la posizione corrente del file |
||
Scrivere gli elementi di dati non formattati nel flusso |
||
Leggere i caratteri dal flusso (versioni di macro di fgetc e di fgetwc) |
||
Leggere caratteri da stdin (versioni di macro di fgetchar e di fgetwchar) |
||
Restituisce il numero dei file aperti contemporaneamente permesso a livello del flusso I/O. |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Leggere una riga dallo stdin |
||
Leggere int binari da un flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
Scrivere dati formattati nello stdout |
|
Scrivere un carattere in un flusso (versioni macro di fputc e di fputwc) |
||
Scrivere un carattere sullo stdout (versioni di macro di fputchar e di fputwchar) |
||
Scrivere una riga nel flusso |
||
Scrivere int binari in un flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Spostare la posizione del file all'inizio di un flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Rimuovere i file temporanei creati da tmpfile |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l |
Leggere dati formattati dallo stdin |
System::Console::ReadLine; vedere anche i metodi di Parse, come System::Double::Parse. |
Controllare il buffering del flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Impostare un massimo per il numero dei file aperti contemporaneamente al livello del flusso I/O. |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Controllare il buffering del flusso e la dimensione del buffer |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l |
Scrivere dati formattati di lunghezza specificata in una stringa |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l |
Legge i dati formattati di lunghezza specificata dal flusso dello standard input |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l |
Scrivere dati formattati in una stringa |
|
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l |
Leggere dati formattati da una stringa |
Vedere i metodi Parse, come System::Double::Parse |
Creare il filename temporaneo nella directory specificata |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Creare un file temporaneo |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Creare un filename temporaneo |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
Inserire caratteri in coda al flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
|
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l |
Scrivere dati formattati alla console. |
|
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l |
Scrivere dati formattati in un flusso |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l |
Scrivere dati formattati nello stdout |
|
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l |
Scrivere dati formattati di lunghezza specificata in un buffer |
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma. |
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l |
Scrivere dati formattati in un buffer |
Quando un programma inizia l'esecuzione, il codice di avvio automatico apre più flussi: standard input (puntato da stdin), standard output (puntato da stdout) e standard error (puntato da stderr). I flussi vengono indirizzati alla console (tastiera e schermo) per impostazione predefinita. Utilizzare freopen per reindirizzare stdin, stdout, o stderr a un file su disco o a un dispositivo.
I file aperti mediante le routine del flusso vengono memorizzati nel buffer per impostazione predefinita. Le funzioni di stderr e di stdout vengono scaricate e memorizzate ogni volta che vengono completate o, se si sta scrivendo su un dispositivo a caratteri, dopo ogni chiamata della libreria. Se un programma termina in modo anomalo, i buffer di output non possono essere scaricati, con conseguente perdita di dati. Utilizzare fflush o _flushall per assicurarsi che il buffer associato a un file specificato o tutti i buffer aperti siano scaricati al sistema operativo, che può memorizzare nella cache i dati prima di scrittura sul disco. La funzionalità di commit a disco garantisce che il contenuto del buffer scaricato non vada perduto nel caso di un errore di sistema.
Esistono due modi per eseguire il commit del contenuto del buffer su disco:
Collegamento al file COMMODE.OBJ per impostare un flag globale di commit. L'impostazione predefinita del flag globale è n, per "no-commit."
Impostare il flag di modalità a c con fopen o _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.
Se il programma in modo esplicito non chiude un flusso, il flusso viene automaticamente chiuso quando il programma termina. Tuttavia, è necessario chiudere un flusso quando il programma termina con esso, perché il numero dei flussi che possono essere aperti contemporaneamente sono limitati. Vedere _setmaxstdio per informazioni su questo limite.
L'input può utilizzare direttamente l'output solo con una chiamata corrispondente a fflush o a una funzione di posizionamento di file (fseek, fsetpos, o 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.