PRÁCTICA 3
include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>//Define macros que presentan informe de error a través de códigos.
#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 %d mi padre es PId= %d, Yo soy PID=%d\n",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 el fork");
exit(EXIT_FAILURE);
}
}
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>
#define NUM_HIJOS 2
int main(void)
{
int ret,i;
for(i=1;i<=NUM_HIJOS;i++)
{
ret=fork();
if(ret==0)
{
printf("Yo soy el hijo %d mi padre es PID= %d, Yo soy PID=%d\n",i,getpid(),getppid());
}
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 el fork");
exit(EXIT_FAILURE);
}
}
}
No hay comentarios:
Publicar un comentario