E/S de secuencia

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Estas funciones procesan datos de diferentes tamaños y formatos, desde caracteres individuales a estructuras de datos de gran tamaño. También proporcionan almacenamiento en búfer, que puede mejorar el rendimiento. El tamaño predeterminado de un búfer de secuencia es 4K. Estas rutinas afectan sólo a los búferes creados por las rutinas de biblioteca en tiempo de ejecución y no tienen ningún efecto en los búferes creados por el sistema operativo.

Rutinas de E/S de secuencia

RutinaUsoEquivalente de .NET Framework
clearerr, clearerr_sIndicador de borrar error para la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
fcloseCerrar secuenciaSystem::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
_fcloseallCerrar todas las secuencias abiertas excepto stdin, stdout y stderrSystem::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
_fdopen, _wfdopenAsociar la secuencia con un descriptor de archivo del archivo abiertoFileStream
feofPrueba de fin de archivo en secuenciaSystem::IO::FileStream::Read
ferrorPrueba de error en secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
fflushVaciar la secuencia en el búfer o en el dispositivo de almacenamientoSystem::IO::FileStream::Flush
fgetc, fgetwcLeer carácter de la secuencia (versiones de función de getc y getwc)System::IO::StreamReader::Read
_fgetchar, _fgetwcharLeer carácter de stdin (versiones de función de getchar y getwchar)System::Console::Read
fgetposObtener el indicador de posición de la secuenciaSystem::IO::FileStream::Position
fgets, fgetwsLeer cadena de la secuenciaSystem::IO::StreamReader::ReadLine, System::IO::TextReader::ReadBlock
_filenoObtener el descriptor de archivo asociado con la secuenciaSystem::IO::FileStream::Handle
_flushallVaciar todas las secuencias en el búfer o en el dispositivo de almacenamientoSystem::IO::FileStream::Flush, System::IO::StreamWriter::Flush, System::IO::TextWriter::Flush, System::IO::BinaryWriter::Flush
fopen, _wfopen, fopen_s, _wfopen_sAbrir secuenciaSystem::IO::File::Open
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_lEscribe datos con formato en la secuenciaSystem::IO::StreamWriter::Write
fputc, fputwcEscribir un carácter en una secuencia (versiones de función de putc y putwc)System::IO::StreamWriter::Write
_fputchar, _fputwcharEscribir un carácter en stdout (versiones de función de putchar y putwchar)System::Console::Write
fputs, fputwsEscribir cadena en la secuenciaSystem::IO::StreamWriter::Write
freadLeer datos sin formato de la secuenciaSystem::IO::FileStream::Read
freopen, _wfreopen, freopen_s, _wfreopen_sReasignar el puntero de la secuencia FILE al nuevo archivo o dispositivoSystem::IO::File::Open
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_lLeer datos con formato de la secuenciaSystem::IO::StreamReader::ReadLine; vea también los métodos Parse, como System::Double::Parse.
fseek, _fseeki64Mover posición de archivo a la ubicación dadaSystem::IO::FileStream::Position, System::IO::FileStream::Seek
fsetposEstablecer el indicador de posición de la secuenciaSystem::IO::FileStream::Position
_fsopen, _wfsopenAbre una secuencia con uso compartido de archivos.No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
ftell, _ftelli64Obtener la posición del archivo actualSystem::IO::FileStream::Position
fwriteEscribir elementos de datos sin formato en la secuenciaSystem::IO::FileStream::Write
getc, getwcLeer carácter de la secuencia (versiones de macro de fgetc y fgetwc)System::IO::StreamReader::Read
getchar, getwcharLeer caracteres de stdin (versiones de macro de fgetchar y fgetwchar)System::Console::Read
_getmaxstdioDevuelve el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
gets_s, _getws_sLeer línea de stdinSystem::Console::Read
_getwLeer int binario de la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_lEscribir datos con formato en stdoutSystem::Console::Write
putc, putwcEscribir carácter en una secuencia (versiones de macro de fputc y fputwc)System::IO::StreamWriter::Write
putchar, putwcharEscribir carácter en stdout (versiones de macro de fputchar y fputwchar)System::Console::Write
puts, _putwsEscribir línea en la secuenciaSystem::Console::Write
_putwEscribir int binario en la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
rewindMover la posición de archivo al principio de la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
_rmtmpQuitar archivos temporales creados por tmpfileNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_lLeer datos con formato de stdinSystem::Console::ReadLine; vea también los métodos Parse, como System::Double::Parse.
setbufControlar el almacenamiento en búfer de la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
_setmaxstdioEstablece el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
setvbufControlar el almacenamiento en búfer de la secuencia y el tamaño del búferNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_lEscribir datos con formato de la longitud especificada en la cadenaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_lLee los datos con formato de una longitud especificada del flujo de entrada estándar.No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_lEscribir datos con formato en cadenaSystem::String::Format
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_lLeer datos con formato de la cadenaVea los métodos Parse, por ejemplo, System::Double::Parse
_tempnam, _wtempnamGenerar un nombre de archivo temporal en el directorio dadoNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
tmpfile, tmpfile_sCrear un archivo temporalNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_sGenerar un nombre de archivo temporalNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
ungetc, ungetwcInsertar el carácter de nuevo en la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_lEscribir datos con formato en la consola.System::Console::Write
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_lEscribe datos con formato en la secuenciaNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_lEscribir datos con formato en stdoutSystem::Console::Write
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_lEscribir datos con formato de la longitud especificada en el búferNo es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_lEscribir datos con formato en el búferSystem::String::Format

Cuando un programa inicia la ejecución, el código de inicio abre automáticamente varias secuencias: entrada estándar (señalada por stdin), salida estándar (señalada por stdout) y errores estándar (señalada por stderr). Estas secuencias se dirigen a la consola (teclado y pantalla) de forma predeterminada. Utilice freopen para redirigir stdin, stdout o stderr a un archivo de disco o un dispositivo.

Los archivos abiertos con las rutinas de secuencia se almacenan en búfer de forma predeterminada. Las funciones stdout y stderr se vacían siempre que están llenas o, si está escribiendo en un dispositivo de caracteres, tras cada llamada a la biblioteca. Si un programa finaliza incorrectamente, los búferes de salida pueden no ser vaciados, lo que resulta en pérdida de datos. Use fflush o _flushall para asegurarse de que el búfer asociado con un archivo especificado o todos los búferes abiertos se vacían en el sistema operativo, que puede almacenar datos en caché antes de escribir en el disco. La característica de confirmación en disco garantiza que el contenido del búfer de vaciado no se pierda si se produce un error del sistema.

Hay dos formas de confirmar el contenido del búfer en el disco:

  • Vincular con el archivo COMMODE.OBJ para establecer una un indicador global de confirmación. El valor predeterminado del indicador global es n para "no-commit".

  • Establezca el indicador de modo en c con fopen o _fdopen.

Cualquier archivo que se abra específicamente con el indicador c o n se comporta según el indicador, independientemente del estado del indicador global commit/no-commit.

Si el programa no cierra explícitamente una secuencia, la secuencia se cierra automáticamente cuando finaliza el programa. Sin embargo, debe cerrar una secuencia cuando el programa termina de usarla, ya que el número de secuencias que pueden estar abiertas al mismo tiempo es limitado. Vea _setmaxstdio para obtener información sobre este límite.

La entrada puede seguir directamente a la salida sólo con una llamada intermedia a fflush o a una función de posicionamiento de archivo (fseek, fsetpos o rewind). La salida puede seguir a la entrada sin una llamada intermedia a una función de posicionamiento de archivo si la operación de entrada encuentra el final del archivo.

Entrada y salida
Rutinas de tiempo de ejecución por categoría

Mostrar: