Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Controla el almacenamiento en búfer de la secuencia. Esta función está en desuso; use setvbuf en su lugar.
Sintaxis
void setbuf(
FILE *stream,
char *buffer
);
Parámetros
stream
Puntero a la estructura FILE .
buffer
Búfer asignado por el usuario.
Comentarios
La función setbuf controla el almacenamiento en búfer de stream. El stream argumento debe hacer referencia a un archivo abierto que no se ha leído ni escrito. Si el buffer argumento es NULL, la secuencia no se puede búfer. Si no es así, el búfer debe apuntar a una matriz de caracteres con una longitud de BUFSIZ, donde BUFSIZ es el tamaño del búfer como se define en STDIO.H. Para el almacenamiento en búfer de E/S se usa el búfer especificado por el usuario, y no el búfer predeterminado asignado por el sistema para la secuencia especificada. La stderr secuencia está sin búfer de forma predeterminada, pero puede usar setbuf para asignar búferes a stderr.
setbuf se ha reemplazado por setvbuf, que es la rutina preferida para el nuevo código. A diferencia setvbufde , setbuf no tiene forma de notificar errores. setvbuf también le permite controlar el modo de almacenamiento en búfer y el tamaño del búfer. setbuf existe para la compatibilidad con el código existente.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
| Routine | Encabezado necesario |
|---|---|
setbuf |
<stdio.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_setbuf.c
// compile with: /W3
// This program first opens files named DATA1 and
// DATA2. Then it uses setbuf to give DATA1 a user-assigned
// buffer and to change DATA2 so that it has no buffer.
#include <stdio.h>
int main( void )
{
char buf[BUFSIZ];
FILE *stream1, *stream2;
fopen_s( &stream1, "data1", "a" );
fopen_s( &stream2, "data2", "w" );
if( (stream1 != NULL) && (stream2 != NULL) )
{
// "stream1" uses user-assigned buffer:
setbuf( stream1, buf ); // C4996
// Note: setbuf is deprecated; consider using setvbuf instead
printf( "stream1 set to user-defined buffer at: %Fp\n", buf );
// "stream2" is unbuffered
setbuf( stream2, NULL ); // C4996
printf( "stream2 buffering disabled\n" );
_fcloseall();
}
}
stream1 set to user-defined buffer at: 0012FCDC
stream2 buffering disabled
Vea también
E/S de secuencia
fclose, _fcloseall
fflush
fopen, _wfopen
setvbuf