E/S de secuencia

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 flujo

Routine Usar
clearerr, clearerr_s Indicador de borrar error para la secuencia
fclose Cerrar secuencia
_fcloseall Cerrar todas las secuencias abiertas excepto stdin, stdouty stderr
_fdopen, wfdopen Asociar la secuencia con un descriptor de archivo del archivo abierto
feof Prueba de fin de archivo en secuencia
ferror Prueba de error en secuencia
fflush Vaciar la secuencia en el búfer o en el dispositivo de almacenamiento
fgetc, fgetwc Leer carácter de la secuencia (versiones de función de getc y getwc)
_fgetchar, _fgetwchar Leer carácter de stdin (versiones de función de getchar y getwchar)
fgetpos Obtener el indicador de posición de la secuencia
fgets, fgetws Leer cadena de la secuencia
_fileno Obtener el descriptor de archivo asociado con la secuencia
_flushall Vaciar todas las secuencias en el búfer o en el dispositivo de almacenamiento
fopen, _wfopen, fopen_s, _wfopen_s Abrir secuencia
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l Escribe datos con formato en la secuencia
fputc, fputwc Escribir un carácter en una secuencia (versiones de función de putc y putwc)
_fputchar, _fputwchar Escribir un carácter en stdout (versiones de función de putchar y putwchar)
fputs, fputws Escribir cadena en la secuencia
fread Leer datos sin formato de la secuencia
freopen, _wfreopen, freopen_s, _wfreopen_s Reasignar el puntero de la secuencia FILE al nuevo archivo o dispositivo
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l Leer datos con formato de la secuencia
fseek, _fseeki64 Mover posición de archivo a la ubicación dada
fsetpos Establecer el indicador de posición de la secuencia
_fsopen, _wfsopen Abre una secuencia con uso compartido de archivos.
ftell, _ftelli64 Obtener la posición del archivo actual
fwrite Escribir elementos de datos sin formato en la secuencia
getc, getwc Leer carácter de la secuencia (versiones de macro de fgetc y fgetwc)
getchar, getwchar Leer caracteres de stdin (versiones de macro de fgetchar y fgetwchar)
_getmaxstdio Devuelve el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.
gets_s, _getws_s Leer línea de stdin
_getw Leer int binario de la secuencia
printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l Escribir datos con formato en stdout
putc, putwc Escribir carácter en una secuencia (versiones de macro de fputc y fputwc)
putchar, putwchar Escribir carácter en stdout (versiones de macro de fputchar y fputwchar)
puts, _putws Escribir línea en la secuencia
_putw Escribir int binario en la secuencia
rewind Mover la posición de archivo al principio de la secuencia
_rmtmp Quitar archivos temporales creados por tmpfile
scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l Leer datos con formato de stdin
setbuf Controlar el almacenamiento en búfer de la secuencia
_setmaxstdio Establece el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.
setvbuf Controlar el almacenamiento en búfer de la secuencia y el tamaño del búfer
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l Escribir datos con formato de la longitud especificada en la cadena
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l Lee los datos con formato de una longitud especificada del flujo de entrada estándar.
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l Escribir datos con formato en cadena
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l Leer datos con formato de la cadena
_tempnam, _wtempnam Generar un nombre de archivo temporal en el directorio dado
tmpfile, tmpfile_s Crear un archivo temporal
tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s Generar un nombre de archivo temporal
ungetc, ungetwc Insertar el carácter de nuevo en la secuencia
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l Escribir datos con formato en la consola.
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l Escribe datos con formato en la secuencia
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l Escribir datos con formato en stdout
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l Escribir datos con formato de la longitud especificada en el búfer
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l Escribir datos con formato en el búfer

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, stdouto 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 stdout funciones y stderr se vacían siempre que estén llenas o, si está escribiendo en un dispositivo de caracteres, después de cada llamada de 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 a un archivo especificado se vacía en el sistema operativo o que se vacían todos los búferes abiertos. El sistema operativo puede almacenar en caché los datos antes de escribirlos en el disco. La característica de confirmación en disco garantiza que el contenido del búfer 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 npara "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. Consulte _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, fsetposo rewind). La entrada puede ir seguida de una salida sin una llamada intermedia a una función de posicionamiento de archivos, si la operación de entrada encuentra el final del archivo.

Consulte también

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