Ejercicios
1. Desarrolla un programa que calcule la pendiente de una
recta y, en caso de error de coma flotante (división por 0),
capture la señal de error y genere una pendiente aleatoria. El
programa deberá seguir ejecutándose, aunque los resultados no sean
los esperados.
2. Desarrolla un programa que, mediante setjmp y longjmp,
sea capaz de gestionar un mensaje SIGINT generado por el
usuario, de manera que, en vez de terminar el proceso, comience su
ejecución desde el principio; es decir, que convierta la señal
SIGINT en una reinicialización del programa.
3. Soluciona el problema que puede aparecer en la
implementación del ejemplo de la sección 2.10. (d) cuando el
programador fija un tiempo en segundos tan pequeño que el
temporizador genera la señal SIGALRM antes de entrar en
pause, ya que entonces se llama a la rutina antes de pause y, como
ya ha finalizado la ejecución del temporizador, no se va a generar
ninguna otra señal SIGALRM, con lo que nunca saldrá de
pause.
4. El uso de temporizadores no asegura que la ejecución del
proceso sea perfectamente síncrona; de hecho, si trata de realizar
siempre el mismo número de acciones entre dos señales del
temporizador definido con el mismo número de segundos, se observará
que no siempre puede realizar las mismas acciones. Para
comprobarlo, desarrolla un programa que escriba en un fichero la
letra a continuamente entre dos señales SIGALRM. Esto
significa que el programa definirá un temporizador de n segundos y
comenzará a escribir en fichero; al llegar la señal cerrará ese
fichero y abrirá otro distinto (con nombres a1, a2, a3, a4, etc.),
definirá de nuevo el temporizador y comenzará a escribir en el
nuevo fichero. Se debe verificar si, tras cientos de ejecuciones y,
por tanto, cientos de ficheros generados, el número de letras
escritas en cada fichero es exactamente el mismo.
5. Para comprobar si el número de letras de los ficheros del
ejercicio anterior es el mismo, resultará más cómodo ir contando
las letras y escribiendo en un fichero, al que llamaríamos
resultado, el número de letras para cada ejecución. Realiza esta
mejora utilizando un proceso hijo que cuente el número de letras de
un fichero. El proceso padre avisará al proceso hijo de que ha
terminado de escribir, y éste contará las letras del último fichero
generado por el padre y escribirá en resultado el nombre del
fichero (a1, a2, a3, etc.) y el número de letras.
Hay 1 opinión. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Redacción eficaz de documentos de empresa ¿Sus memorandos son incomprensibles para sus compañeros de trabajo? ¿Su director no entiende sus informes? No se preocupe: con este sencillo curso gratis obtendrá las cla... [22/04/02] |
|
51.031 | ||
|
Introducción al Lenguaje C El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este lenguaje, que en la actualidad está bajo el estandar ANSI C, se ha utilizado para diseñar ho... [10/05/04] |
|
25.607 | ||
|
PHP y MySQL. Aplicaciones Web: HTML II (tercera parte) Programación de aplicaciones Web con PHP y MySQL. Ahora continuaremos con el estudio de las páginas Web HTML. Estudiaremos las listas en HTML. ... [02/12/08] |
|
711 | ||
Publicar en
del.icio.us
digg
meneame