Ir a inicioFavoritosRecomiéndanos El Prisma.com - Ingeniería de Sistemas
Inicio > Regresar a Ingeniería de Sistemas 715 visitantes activos
Sockets - Comunicación entre Procesos Distribuidos



Navigation bar
  Start Previous page
 10 of 14 
Next page End 5 6 7 8 9 10 11 12 13 14  

       else  
         {  
            mandaPadre(SIGERRCMD);  
         }  
     }   
      
}  /* fin de ejecutaPrimitiva */  
     
/*  
*------------------------------------------------------------  
 
*   PROTOTIPO:   int redireccion ( struct simple* )  
*
 
*   DESCRIPCION: implementa la redirección correspondiente          
*  
*--------------------------------------------------------------  
*/  
int redireccion ( struct simple *p )  
{
 
int masc;  
switch (p->redirecEntrada)  
   {  
     case REDIREC_FICHERO:  
        
      if (!dupDf (p->fichEntrada, O_RDONLY, STDIN))   
         return (FALSE);  
      break;  
        
      case REDIREC_SERVIDOR:  
       
      if (raiz->background == FALSE)     /* se ha mandado un socket servidor en
foreground */  
        {  
          mandaPadre(SIGERRSERBACK);  
          return(FALSE);  
        }    
         
      if (!servidor (p->socketEntrada, SOCKET_ENTRADA))  
         return(FALSE);   
      break;  
        
      case REDIREC_CLIENTE:  
        
      if (!cliente (p->socketEntrada, SOCKET_ENTRADA))  
          return (FALSE);  
      break;  
          
    }  
   
  switch (p->redirecSalida)  
   {  
     
      case REDIREC_FICHERO:  
       
      masc = O_CREAT|O_WRONLY|(p->adicion?O_APPEND:O_TRUNC);  
      if (!dupDf (p->fichSalida, masc, STDOUT))  
          return (FALSE);   
      break;  
       
     case REDIREC_SERVIDOR:  
         if (raiz->background == FALSE)     /* se ha mandado un socket servidor en
foreground */  
        {  
          mandaPadre(SIGERRSERBACK);  
          return(FALSE);  
        }   
        
      if (!servidor (p->socketSalida, SOCKET_SALIDA))   
         return (FALSE);  
      break;  
        
      case REDIREC_CLIENTE:  
        
     if (!cliente (p->socketSalida, SOCKET_SALIDA))   
          return (FALSE);  
      break;  
       
      case REDIREC_PANT:  
       
       masc=O_CREAT|O_WRONLY|O_TRUNC;  
       if (!dupDf ("resultado", masc, STDOUT))  
          return (FALSE);  
       
       break;  
   }   
    
  return (TRUE);  
 
Previous page Top Next page
Inicio Última Actualización 2/7/2012 Sugerencias
 
Guía MBA y Masters
Conoce los mejores programas de MBA
Executive MBA y Global MBA