jueves, 22 de septiembre de 2011

PRACTICAS DE LABORATORIO

PRACTICA 2

#include <unistd.h>
include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#define NUM_HIJOS 3
int main(void)
{
int ret,i;
for(i=0;i<NUM_HIJOS;i++){
ret=fork();
if(ret==0){
printf("yo soy el hijo 1, mi padre es PID=%d, yo soy el PID=%d",
i, getppid(),getpid());
} else if(ret>0){
ret= wait(NULL);
while(ret>0){
ret=wait(NULL);
}
if(ret==-1&&errno!=ECHILD){
perror("fallo en wait");
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
else if (ret==-1){
perror("fallo en fork");
exit(EXIT_FAILURE);
}
}
}
 





PRACTICA 3

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#define NUM_HIJOS 3
int main(void)
{
int ret,i;
for(i=0;i<NUM_HIJOS;i++){
ret=fork();
if(ret==0){
printf("yo soy el hijo 1, mi padre es PID=1450, yo soy el PID=1450",
i, getppid(),getpid());
printf("yo soy el hijo 2, mi padre es PID=1450, yo soy el PID=1454",
i, getppid(),getpid());
} else if(ret>0){
ret= wait(NULL);
while(ret>0){
ret=wait(NULL);
}
if(ret==-1&&errno!=ECHILD){
perror("fallo en wait");
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
else if (ret==-1){
perror("fallo en fork");
exit(EXIT_FAILURE);
}
}

}


No hay comentarios:

Publicar un comentario