jueves, 22 de septiembre de 2011

Practica 3 y 4 Configuracion de Procesos en C

A Continuacion  se muestran los resultados de las prácticas 3 y 4

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