initial commit
[pfinal.git] / Routix / tareas / punto / punto.c
blob9f68bacd2298d754f998c678d1c27b949c07535b
1 /* tarea.c */
2 #include "stdarg.h"
3 #include <sys/types.h>
4 #include <lib/routix.h>
5 #include <routix.h>
6 #include <string.h>
7 #include <signal.h>
9 void catchear_hijos(int signo);
11 int hijos;
13 int main (void)
16 int pid;
17 int count;
19 if ( (count=hijos=getvar("numhijos")) == -1 ) {
20 count=hijos=5;
25 signal(SIGCHLD, catchear_hijos);
27 while ( count-- ) {
29 if ( (pid=fork()) == -1 ) {
30 perror("error al forkear");
31 exit(1);
34 // hijo
35 else if ( ! pid ) {
37 if ( (count=getvar("numlecturas")) == -1 ) {
38 count=5;
41 while ( count--) {
42 read_debug(5);
43 //exec("print.bin");
46 exit(0);
51 while ( hijos ) ;
53 printf("todos los hijos terminaron correctamente\n");
55 exit(0);
62 void catchear_hijos(int signo)
64 if (signo!=SIGCHLD) {
65 printf("DEBERIA HABER RECIBIDO SIGCHLD y recibi: %d\n", signo);
66 exit(-1);
69 int value;
71 hijos--;
72 wait(&value);