3.309 cursos gratis
6.273.225 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. Otras funciones (primera parte)

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 15:

 Procesos en C. Otras funciones (primera parte)

C. Otras funciones: pause, sigpause, setjmp y longjmp

La función pause permite suspender la ejecución de un proceso hasta la recepción de una señal. Se dice entonces que el proceso queda en espera; como la llegada de una señal interrumpe este estado, se dice que pause espera la llegada de una señal. La definición de esta función es la siguiente:

include <unistd.h>
int pause (void);


Cuando por fin llega una señal, en primer lugar se ejecuta la rutina de tratamiento de la señal; después, la función pause devuelve un -1 y en errno se sitúa el valor EINTR, que indica que la señal ha sido recibida y que la función pause se ha ejecutado de forma correcta.

Con frecuencia, pause espera a una alarma de reloj; es decir, la espera finaliza con una señal SIGALRM. Ahora bien, hay que destacar que la función pause no es selectiva respecto al tipo de señal que puede terminar con su espera, lo que no sucede con la función sigpause.

Como ya se ha explicado, es posible detener un proceso hasta la recepción de una o varias señales concretas, lo que se puede fijar mediante la función sigpause. La definición de esta función es:

include <signal.h>
long sigpause (long mask);


Así, la función sigpause suspende el proceso hasta que llega una de las señales que no están bloqueadas en mask. Una vez que el proceso deja de estar detenido, la función sigpause devuelve el valor original a la máscara de señales. Al igual que ocurre en la función pause, devuelve un -1 y en errno se sitúa el valor EINTR, que indica que la señal ha sido recibida y que la función sigpause se ha ejecutado correctamente.

En C no es posible ir con un goto a una etiqueta que se encuentra en otra función. Para llevar a cabo este tipo de ramificaciones es preciso emplear las funciones setjmp y longjmp (se encuentran en <setjmp.h>). No obstante, su uso más relevante es el destinado a la captura de condiciones de error que aparecen en llamadas a funciones profundamente anidadas. La función longjmp se suele llamar desde un gestor de señales para retornar al bucle principal de un programa, en lugar de retornar directamente desde el gestor. En realidad, el estándar ANSI C establece que un gestor de señales puede retornar a la función principal o llamar a abort, exit o longjmp.

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