oracular (3) setcontext.3.gz

Provided by: manpages-es-dev_4.23.1-1_all bug

NOMBRE

       getcontext, setcontext - consulta o establece el contexto de usuario

BIBLIOTECA

       Biblioteca Estándar C (libc, -lc)

SINOPSIS

       #include <ucontext.h>

       int getcontext(ucontext_t *ucp);
       int setcontext(const ucontext_t *ucp);

DESCRIPCIÓN

       En  un  entorno  del  tipo  System  V,  se  encuentran los dos tipos mcontext_t y ucontext_t definidos en
       <ucontext.h> y las  cuatro  funciones  getcontext(),  setcontext(),  makecontext()  y  swapcontext()  que
       permiten  el  intercambio del contexto del nivel de usuario entre múltiples hilos de control dentro de un
       proceso.

       El tipo mcontext_t es dependiente de la máquina y opaco.  El tipo ucontext_t es una estructura que  tiene
       al menos los campos siguientes:

           typedef struct ucontext_t {
               struct ucontext_t *uc_link;
               sigset_t          uc_sigmask;
               stack_t           uc_stack;
               mcontext_t        uc_mcontext;
               ...
           } ucontext_t;

       de  los  cuales  sigset_t  y  stack_t están definidos en <signal.h>.  uc_link apunta al contexto que será
       reanudado cuando termine el contexto actual (en el caso de que el contexto actual haya sido creado usando
       makecontext(3)), uc_sigmask es el conjunto de señales bloqueadas en este contexto (véase sigprocmask(2)),
       uc_stack es la pila usada por este contexto (véase sigaltstack(2)), y uc_mcontext  es  la  representación
       del  contexto  guardado  específica  de  la máquina, que incluye los registros de la máquina para el hilo
       invocador.

       La función getcontext() inicializa la estructura apuntada por ucp al contexto activo actualmente.

       The function setcontext()  restores the user context pointed to by  ucp.   A  successful  call  does  not
       return.   The context should have been obtained by a call of getcontext(), or makecontext(3), or received
       as the third argument to a signal handler (see the discussion of the SA_SIGINFO flag in sigaction(2)).

       Si el contexto se obtuvo mediante una llamada a getcontext(), la ejecución del programa continúa como  si
       esta llamada simplemente regresara.

       Si el contexto fue obtenido mediante una llamada a makecontext(3), la ejecución del programa continua por
       la llamada a la función func especificada como segundo argumento en la llamada a makecontext(3).   Cuando
       la función func regresa, se continua con el miembro uc_link de la estructura ucp especificada como primer
       argumento en la llamada a makecontext(3).  Cuando este miembro es NULL, el hilo termina.

       Cuando el contexto se obtiene mediante una llamada a un manejador de señales,  se  solía  decir  que  "la
       ejecución  del  programa  continua con la instrucción de programa siguiente a la instrucción interrumpida
       por la señal". Sin embargo, esta sentencia fue eliminada en SUSv2, y ahora se establece que "el resultado
       es indefinido".

VALOR DEVUELTO

       Cuando  tiene éxito, getcontext() devuelve 0 y setcontext() no regresa. En caso de error, ambas devuelven
       -1 y modifican errno con el valor apropiado.

ERRORES

       No se definen errores.

ATRIBUTOS

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

       ┌────────────────────────────────────────────────────────────────┬────────────────────┬──────────────────┐
       │InterfazAtributoValor            │
       ├────────────────────────────────────────────────────────────────┼────────────────────┼──────────────────┤
       │getcontext(), setcontext()                                      │ Seguridad del hilo │ MT-Safe race:ucp │
       └────────────────────────────────────────────────────────────────┴────────────────────┴──────────────────┘

ESTÁNDARES

       None.

HISTORIAL

       SUSv2, POSIX.1-2001.

       POSIX.1-2008 removes these functions, citing portability issues, and recommending  that  applications  be
       rewritten to use POSIX threads instead.

NOTAS

       The earliest incarnation of this mechanism was the setjmp(3)/ longjmp(3)  mechanism.  Since that does not
       define the handling of the signal context, the next stage was the sigsetjmp(3)/ siglongjmp(3) pair.   The
       present  mechanism  gives much more control.  On the other hand, there is no easy way to detect whether a
       return from getcontext()  is from the first call, or via a setcontext()  call.  The user  has  to  invent
       their own bookkeeping device, and a register variable won't do since registers are restored.

       Cuando  ocurre una señal, el contexto de usuario actual se guarda y el núcleo crea un nuevo contexto para
       el manejador de señales.  No deje al  manejador  usar  longjmp(3)  -  es  indefinido  que  ocurriría  con
       contextos. Use siglongjmp(3) o setcontext() en su lugar.

VÉASE TAMBIÉN

       sigaction(2), sigaltstack(2), sigprocmask(2), longjmp(3), makecontext(3), sigsetjmp(3), signal(7)

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>
       y Marcos Fouces <marcos@debian.org>

       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⟩.