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 , stdout y 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
, 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 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
n
para "no-commit".Establezca el indicador de modo en
c
confopen
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
, fsetpos
o 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