E/S de secuenciaStream I/O
Estas funciones procesan datos de diferentes tamaños y formatos, desde caracteres individuales a estructuras de datos de gran tamaño.These functions process data in different sizes and formats, from single characters to large data structures. También proporcionan almacenamiento en búfer, que puede mejorar el rendimiento.They also provide buffering, which can improve performance. El tamaño predeterminado de un búfer de secuencia es 4K.The default size of a stream buffer is 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.These routines affect only buffers created by the run-time library routines, and have no effect on buffers created by the operating system.
Rutinas de E/S de secuenciaStream I/O Routines
RutinaRoutine | UsoUse |
---|---|
clearerr, clearerr_sclearerr, clearerr_s | Indicador de borrar error para la secuenciaClear error indicator for stream |
fclosefclose | Cerrar secuenciaClose stream |
_fcloseall_fcloseall | Cerrar todas las secuencias abiertas excepto stdin, stdout y stderrClose all open streams except stdin, stdout, and stderr |
_fdopen, wfdopen_fdopen, wfdopen | Asociar la secuencia con un descriptor de archivo del archivo abiertoAssociate stream with file descriptor of open file |
feoffeof | Prueba de fin de archivo en secuenciaTest for end of file on stream |
ferrorferror | Prueba de error en secuenciaTest for error on stream |
fflushfflush | Vaciar la secuencia en el búfer o en el dispositivo de almacenamientoFlush stream to buffer or storage device |
fgetc, fgetwcfgetc, fgetwc | Leer carácter de la secuencia (versiones de función de getc y getwc)Read character from stream (function versions of getc and getwc) |
_fgetchar, _fgetwchar_fgetchar, _fgetwchar | Leer carácter de stdin (versiones de función de getchar y getwchar)Read character from stdin (function versions of getchar and getwchar) |
fgetposfgetpos | Obtener el indicador de posición de la secuenciaGet position indicator of stream |
fgets, fgetwsfgets, fgetws | Leer cadena de la secuenciaRead string from stream |
_fileno_fileno | Obtener el descriptor de archivo asociado con la secuenciaGet file descriptor associated with stream |
_flushall_flushall | Vaciar todas las secuencias en el búfer o en el dispositivo de almacenamientoFlush all streams to buffer or storage device |
fopen, _wfopen, fopen_s, _wfopen_sfopen, _wfopen, fopen_s, _wfopen_s | Abrir secuenciaOpen 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 | Escribe datos con formato en la secuenciaWrite formatted data to stream |
fputc, fputwcfputc, fputwc | Escribir un carácter en una secuencia (versiones de función de putc y putwc)Write a character to a stream (function versions of putc and putwc) |
_fputchar, _fputwchar_fputchar, _fputwchar | Escribir carácter en stdout (versiones de función de putchar y putwchar)Write character to stdout (function versions of putchar and putwchar) |
fputs, fputwsfputs, fputws | Escribir cadena en la secuenciaWrite string to stream |
freadfread | Leer datos sin formato de la secuenciaRead unformatted data from stream |
freopen, _wfreopen, freopen_s, _wfreopen_sfreopen, _wfreopen, freopen_s, _wfreopen_s | Reasignar el puntero de la secuencia FILE al nuevo archivo 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 | Leer datos con formato de la secuenciaRead formatted data from stream |
fseek, _fseeki64fseek, _fseeki64 | Mover posición de archivo a la ubicación dadaMove file position to given location |
fsetposfsetpos | Establecer el indicador de posición de la secuenciaSet position indicator of stream |
_fsopen, _wfsopen_fsopen, _wfsopen | Abre una secuencia con uso compartido de archivos.Open stream with file sharing |
ftell, _ftelli64ftell, _ftelli64 | Obtener la posición del archivo actualGet current file position |
fwritefwrite | Escribir elementos de datos sin formato en la secuenciaWrite unformatted data items to stream |
getc, getwcgetc, getwc | Leer carácter de la secuencia (versiones de macro de fgetc y fgetwc)Read character from stream (macro versions of fgetc and fgetwc) |
getchar, getwchargetchar, getwchar | Leer carácter de stdin (versiones de macro de fgetchar y fgetwchar)Read character from stdin (macro versions of fgetchar and fgetwchar) |
_getmaxstdio_getmaxstdio | Devuelve el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.Returns the number of simultaneously open files permitted at the stream I/O level. |
gets_s, _getws_sgets_s, _getws_s | Leer línea de stdinRead line from stdin |
_getw_getw | Leer binario int de la secuenciaRead 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 | Escribir datos con formato en stdoutWrite formatted data to stdout |
putc, putwcputc, putwc | Escribir carácter en una secuencia (versiones de macro de fputc y fputwc)Write character to a stream (macro versions of fputc and fputwc) |
putchar, putwcharputchar, putwchar | Escribir carácter en stdout (versiones de macro de fputchar y fputwchar)Write character to stdout (macro versions of fputchar and fputwchar) |
puts, _putwsputs, _putws | Escribir línea en la secuenciaWrite line to stream |
_putw_putw | Escribir binario int en la secuenciaWrite binary int to stream |
rebobinarrewind | Mover la posición de archivo al principio de la secuenciaMove file position to beginning of stream |
_rmtmp_rmtmp | Quitar archivos temporales creados por 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 | Leer datos con formato de stdinRead formatted data from stdin |
setbufsetbuf | Controlar el almacenamiento en búfer de la secuenciaControl stream buffering |
_setmaxstdio_setmaxstdio | Establece el número de archivos que se permite abrir simultáneamente en el nivel de E/S de secuencia.Set a maximum for the number of simultaneously open files at the stream I/O level. |
setvbufsetvbuf | Controlar el almacenamiento en búfer de la secuencia y el tamaño del búferControl 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 | Escribir datos con formato de la longitud especificada en la cadenaWrite 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 | Lee los datos con formato de una longitud especificada del flujo de entrada estándar.Read 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 | Escribir datos con formato en cadenaWrite 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 | Leer datos con formato de la cadenaRead formatted data from string |
_tempnam, _wtempnam_tempnam, _wtempnam | Generar un nombre de archivo temporal en el directorio dadoGenerate temporary filename in given directory |
tmpfile, tmpfile_stmpfile, tmpfile_s | Crear un archivo temporalCreate temporary file |
tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_stmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s | Generar un nombre de archivo temporalGenerate temporary filename |
ungetc, ungetwcungetc, ungetwc | Insertar el carácter de nuevo en la secuenciaPush 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 | Escribir datos con formato en la consola.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 | Escribe datos con formato en la secuenciaWrite 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 | Escribir datos con formato en 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 | Escribir datos con formato de la longitud especificada en el búferWrite 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 | Escribir datos con formato en el búferWrite formatted data to buffer |
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).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). Estas secuencias se dirigen a la consola (teclado y pantalla) de forma predeterminada.These streams are directed to the console (keyboard and screen) by default. Use freopen para redirigir stdin, stdout o stderr a un archivo de disco o un dispositivo.Use freopen to redirect stdin, stdout, or stderr to a disk file or a device.
Los archivos abiertos con las rutinas de secuencia se almacenan en búfer de forma predeterminada.Files opened using the stream routines are buffered by default. 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.The stdout and stderr functions are flushed whenever they are full or, if you are writing to a character device, after each library call. Si un programa finaliza incorrectamente, los búferes de salida pueden no ser vaciados, lo que resulta en pérdida de datos.If a program terminates abnormally, output buffers may not be flushed, resulting in loss of data. 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.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 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.The commit-to-disk feature ensures that the flushed buffer contents are not lost in the event of a system failure.
Hay dos formas de confirmar el contenido del búfer en el disco:There are two ways to commit buffer contents to disk:
Vincular con el archivo COMMODE.OBJ para establecer una un indicador global de confirmación.Link with the file COMMODE.OBJ to set a global commit flag. El valor predeterminado del indicador global es n para "no-commit".The default setting of the global flag is n, for "no-commit."
Defina el indicador de modo en c con fopen o _fdopen.Set the mode flag to c with fopen or _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.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.
Si el programa no cierra explícitamente una secuencia, la secuencia se cierra automáticamente cuando finaliza el programa.If your program does not explicitly close a stream, the stream is automatically closed when the program terminates. 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.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. Vea _setmaxstdio para obtener información sobre este límite.See _setmaxstdio for information on this limit.
La entrada puede seguir directamente a la salida solo con una llamada intermedia a fflush o a una función de posicionamiento de archivo (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). 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.Output can follow input without an intervening call to a file-positioning function if the input operation encounters the end of the file.
Consulta tambiénSee also
Entrada y salidaInput and Output
Rutinas en tiempo de ejecución Universal C por categoríaUniversal C runtime routines by category