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

NOMBRE

       flockfile, ftrylockfile, funlockfile - bloqueo sobre el objeto FILE de stdio

SINOPSIS

       #include <stdio.h>

       void flockfile(FILE *filehandle);
       int ftrylockfile(FILE *filehandle);
       void funlockfile(FILE *filehandle);

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

       All functions shown above:
           /* Since glibc 2.24: */ _POSIX_C_SOURCE >= 199309L
               || /* Glibc versions <= 2.23: */ _POSIX_C_SOURCE
               || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPCIÓN

       Las  funciones  stdio  son  hilo-seguro. Ésto se consigue asignando a cada objeto FILE una
       cuenta de bloqueos (lockcount) y (si la cuenta es distinta de cero) un hilo que  actúa  de
       propietario. Por cada llamada a la biblioteca, estas funciones esperan hasta que el objeto
       FILE deje de estar bloqueado por algún otro hilo diferente, después lo bloquean,  realizan
       la petición de E/S solicitada, y desbloquean el objeto de nuevo.

       (Nota:  este  bloqueo  no  tiene  nada  que ver con el bloqueo realizadopor funciones como
       flock(2) y lockf(3).)

       Todo ésto es invisible al programador de C, pero puede haber dos razones  para  querer  un
       control  más  detallado.  Por una parte, una serie de acciones de E/S de un hilo pueden ir
       juntas, y no deberían ser interrumpidas por la E/S de ningún otro hilo. Por otra parte, la
       sobrecarga del bloqueo debería evitarse para lograr una mayor eficiencia.

       Para  este  propósito,  un  hilo puede bloquear explícitamente el objeto FILE, realizar su
       serie de acciones de E/S,  y  después  desbloquearlo.  Ésto  impide  que  otros  hilos  lo
       interrumpan.  Si la razón para hacer esto es lograr una mayor eficiencia, se debe realizar
       la E/S con las versiones no-bloqueantes de las funciones  stdio:  con  getc_unlocked(3)  y
       putc_unlocked(3) en lugar de getc(3) y putc(3).

       La  función  flockfile()  espera  a que *filehandle deje de estar bloqueado por otro hilo,
       hace al hilo actual propietario de *filehandle, e incrementa la cuenta de bloqueos.

       La función funlockfile() decrementa la cuenta de bloqueos.

       La función ftrylockfile() es una versión no-bloqueante de flockfile(). No hace nada en  el
       caso de que otro hilo sea el propietario de *filehandle, en otro caso obtiene la propiedad
       e incrementa la cuenta de bloqueos.

VALOR DEVUELTO

       La función ftrylockfile() devuelve cero cuando tiene éxito (obtuvo el bloqueo), y un valor
       distinto de cero en caso de fallo.

ERRORES

       Ninguno.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

       ┌──────────────────────────────┬────────────────────┬───────────────────┐
       │InterfazAtributoValor             │
       ├──────────────────────────────┼────────────────────┼───────────────────┤
       │flockfile(),  ftrylockfile(), │ Seguridad del hilo │ Multi-hilo seguro │
       │funlockfile()                 │                    │                   │
       └──────────────────────────────┴────────────────────┴───────────────────┘

CONFORME A

       POSIX.1-2001, POSIX.1-2008.

       Estas funciones están disponibles cuando _POSIX_THREAD_SAFE_FUNCTIONS está definida.

VÉASE TAMBIÉN

       unlocked_stdio(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  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 ⟨⟩.

                                           9 Junio 2020                              FLOCKFILE(3)