3.310 cursos gratis
6.275.657 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Procesos en C. Sincronización (primera parte) > Procesos en C. Función sigprocmask

Procesos en C. Sincronización (primera parte)

Autor: Editorial McGraw-Hill
Curso: 5/5 5/5 (1 opinión) |1058 alumnos|Fecha publicación: 21/10/2008

Capítulo 7:

 Procesos en C. Función sigprocmask

 A. Función sigprocmask

Cada proceso dispone de una máscara de señales que le permite definir qué señales se encuentran bloqueadas. Puede decirse que esta máscara está formada por un conjunto de bits, cada uno de los cuales se halla asociado a una posible señal. Si el bit tiene valor 1 para una determinada señal, por ejemplo, significa que dicha señal está bloqueada. Para que la máscara represente todas las señales, se utiliza un número entero sin signo; cada uno de sus bits indica, según la posición que ocupa, el estado de cada señal.

Existen varias funciones relacionadas con el establecimiento y la comprobación de la máscara de señales de un proceso. Estas funciones son sigsuspend, sigsetmask, sigblock, siggetmask y sigmask. No analizaremos la sintaxis ni la utilidad de cada una de ellas, ya que su funcionalidad se puede resumir en la función sigprocmask, que es la que realmente se emplea en las últimas versiones de Linux, pese a lo cual todas las demás también pueden utilizarse a criterio del programador.

La función sigprocmask se emplea para modificar la lista de señales bloqueadas en un momento dado. La sintaxis de la función es:

Procesos en C. Función sigprocmask

donde el entero que retorna esta función es 0, cuando se ejecuta con éxito, y -1, en caso de error.

El comportamiento de esta función es distinto según cuál sea el valor de how:
-  SIG_BLOCK: el conjunto de señales bloqueadas es la unión del actual y el del argumento set.
-  SIG_UNBLOCK: las señales incluidas en set se eliminan del conjunto de señales bloqueadas en la actualidad. Se considera  permitido el intento de desbloquear una señal que no se halla bloqueada.
-  SIG_SETMASK: el conjunto de señales bloqueadas pasa a ser el contenido en el argumento set.

Si el contenido del argumento oldset no es nulo, el valor previo de la máscara de señales se almacena en oldset.

Mediante esta función se puede bloquear la señal SIGPIPE a través de la llamada:

Procesos en C. Función sigprocmask

donde 8192 es el número entero que, en binario, posee un 1 en la posición 13, siendo 13 el número entero asociado a SIGPIPE. Es necesario recordar que existen dos señales que no es posible bloquear: SIGKILL y SIGSTOP. Cualquier intento de bloqueo de estas señales, simplemente, se ignorará.

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Información de los programas con certificado

Hay 1 opinión. Opina sobre este curso.


Cursos similares a Procesos en C. Sincronización (primera parte)


Cursos Valoración Alumnos Vídeo
Generadores de código
Necesitamos construir proyectos en menor tiempo, con calidad y utilizando metodologias actuales, por eso te proponemos una serie de consejos, normas y cualidades de est... [24/01/06]
 4,67/5 2.288  
Funciones en C (primera parte)
Curso de programacíon informática sobre Funciones en C en el orden de los fundamentos de la programación. Comprende el desarrollo de un software utilizando funciones y a ... [17/10/08]
 4,50/5 3.077  
Técnicas para el desarrollo de computación móvil (orientado a PDA)
Uno de los nuevos paradigmas en el desarrollo de proyectos informáticos es la computación móvil (computación Ubicua). Aquí se verá todo lo que involucra la creación de un... [31/03/06]
 4,33/5 1.405  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail