Ejercicios De Sistemas Distribuidos

Páginas: 3 (534 palabras) Publicado: 20 de enero de 2013
Archivo p13.c:
CONTENIDO DEL ARCHIVO p13.c:
#include #include #include #include typedef struct paquete_control { int segundos; char mensaje[64]; } paquete_control_t; FILE *fp; /* Para guardarlos mensajes que imprimen los avisos; de esta forma, * la salida del programa no interfiere con la entrada de peticiones * de aviso del usuario*/ void *aviso (void *arg) { /** Aqui hay que convertir elargumento de la funcion a un puntero * a un paquete de control */ paquete_control_t *pcontrol = (paquete_control_t*) arg; int estado; /** Utilizar la funcion "pthread_detach" */pthread_detach(pthread_self()); /** Suspender el numero de segundos indicado en la estructura del tipo "paquete_control_t" * que contiene la peticion del usuario.*/ sleep(pcontrol->segundos); /** Imprimir los segundos, elmensaje de usuario y el tiempo absoluto del * aviso. Para ello, utilizaremos la siguiente funcion de stdio.h: * fprintf (fp, "(%d) %s {%ld}\n", ** los segundos*, **el mensaje*); */ fprintf(fp, "(%d)%s \n", pcontrol->segundos, pcontrol->mensaje); /** Liberar la memoria asignada al paquete de control que contiene la peticion * del usuario. */ free(pcontrol); return NULL; } int main (int argc, char*argv[]) { int estado; char linea[128]; /** Declarar un puntero a un paquete de control para contener la peticion del usuario*/ paquete_control_t *pcontrol; /** Declara aqui el resto de variables quete hagan falta*/ pthread_t hebra1; /* Se abre el fichero que contendra las salidas */

if ((fp = fopen("salidas", "w")) == NULL) fprintf(stderr, "Error en la apertura del fichero desalida\n"),exit(0); while (1) { printf ("Petición de aviso> "); if (fgets (linea, sizeof (linea), stdin) == NULL) exit (0); if (strlen (linea) segundos, pcontrol->mensaje)segundos==-1) break; else{ fprintf(stderr,"Entrada erronea\n"); free(pcontrol); } } else{ /** Crear una hebra "aviso"*/ estado = pthread_create(&hebra1, NULL, aviso, pcontrol); if (estado != 0) fprintf(stderr, "Error al crear la hebra...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sistemas distribuidos
  • sistema distribuido
  • Sistemas Distribuidos
  • sistema distribuido
  • Sistemas Distribuidos
  • Sistemas distribuidos
  • Sistemas Distribuidos
  • Sistemas Distribuidos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS