Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

       setbuf, setbuffer, setlinebuf, setvbuf - operaciones sobre búferes de flujos

SINOPSIS

       #include <stdio.h>

       void setbuf(FILE *flujo, char *buf);

       void setbuffer(FILE *flujo, char *buf, size_ttam);

       void setlinebuf(FILE *flujo);

       int setvbuf(FILE *flujo, char *buf, int modo , size_t tam);

   Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

       setbuffer(), setlinebuf():
           Since glibc 2.19:
               _DEFAULT_SOURCE
           Glibc 2.19 and earlier:
               _BSD_SOURCE

DESCRIPCIÓN

       Los  tres tipos disponibles de estrategias de asignación de búferes son sin búfer, con búfer de bloque, y
       con búfer de línea. Cuando un flujo de salida está sin búfer, la información aparece  en  el  fichero  de
       destino  o  en  la  terminal  tan  pronto  como  se escribe; cuando está con búfer de bloque se guardan y
       escriben muchos caracteres como un bloque; cuando está con búfer de línea los caracteres se van guardando
       hasta que se da un salto de línea o si la entrada se lee de cualquier flujo asociado a un dispositivo  de
       terminal  (normalmente  la entrada estándar stdin). Se puede emplear la función fflush(3)  para forzar la
       escritura del bloque más pronto de la cuenta.  (Vea fclose(3).)

       Normally all files are block buffered.  If a stream refers to a terminal (as stdout normally does), it is
       line buffered.  The standard error stream stderr is always unbuffered by default.

       The setvbuf()  function may be used on any open stream to change its buffer.  The mode argument  must  be
       one of the following three macros:

              _IONBF sin búfer

              _IOLBF búfer de línea

              _IOFBF búfer completo

       Salvo  para  ficheros  sin  búfer,  el  argumento buf debería apuntar a un búfer de al menos tam bytes de
       grande; este búfer se utilizará en lugar del actual. Si el argumento buf es NULL,  sólo  el  modo  se  ve
       afectado;  se  obtendrá  un  nuevo  búfer  en  la  siguiente operación de lectura o escritura. La función
       setvbuf() puede ser usada solamente después de abrir un flujo y antes de que ninguna  otra  operación  se
       haya realizado sobre él.

       Las  otras  tres  funciones son, en efecto, simplemente otras formas simplificadas de llamar a setvbuf().
       La función setbuf() es exactamente equivalente a la llamada

           setvbuf(flujo, buf, buf ? _IOFBF : _IONBF, BUFSIZ);

       La función setbuffer() es lo mismo, excepto en que el tamaño del  búfer  se  deja  a  la  discreción  del
       usuario,  en  vez  de  estar  determinado  por  el  valor por omisión BUFSIZ.  La función setlinebuf() es
       exactamente equivalente a la llamada:

           setvbuf(stream, NULL, _IOLBF, 0);

VALOR DEVUELTO

       The function setvbuf()  returns 0 on success.  It returns nonzero on failure  (mode  is  invalid  or  the
       request cannot be honored).  It may set errno on failure.

       The other functions do not return a value.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
       ┌─────────────────────────┬────────────────────┬───────────────────┐
       │ InterfazAtributoValor             │
       ├─────────────────────────┼────────────────────┼───────────────────┤
       │ setbuf(), setbuffer(),  │ Seguridad del hilo │ Multi-hilo seguro │
       │ setlinebuf(), setvbuf() │                    │                   │
       └─────────────────────────┴────────────────────┴───────────────────┘

CONFORME A

       The setbuf()  and setvbuf()  functions conform to C89 and C99.

ERRORES

       You  must  make  sure  that the space that buf points to still exists by the time stream is closed, which
       also happens at program termination.  For example, the following is invalid:

       #include <stdio.h>

       int
       main(void)
       {
           auto char buf[BUFSIZ];
           setbuf(stdin, buf);
           printf("¡Hola a todos!\n");
           return 0; /* Se destruye buf, se cierra stdin */
       }

VÉASE TAMBIÉN

       stdbuf(1), fclose(3), fflush(3), fopen(3), fread(3), malloc(3), printf(3), puts(3)

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,  información  sobre  cómo  informar  errores  y  la  última   versión   de   esta   página   en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Gerardo  Aburruzaga  García
       <gerardo.aburruzaga@uca.es>, Juan Piernas <piernas@ditec.um.es> y Miguel Pérez Ibars <mpi79470@alu.um.es>

       Esta traducción es documentación libre;  lea  la  GNU General Public License Version 3  o  posterior  con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción  de esta página del manual, envíe un correo electrónico a
       debian-l10n-spanish@lists.debian.org.

Linux                                             6 Marzo 2019                                         SETBUF(3)