#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