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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 ⟨⟩.