Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/04/2008, 12:32
Avatar de Mephisto
Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 19 años
Puntos: 3
Re: Manejar señales en C

Yo te puedo dar algunas observaciones que espero te puedan ser utiles..

1. Defines la funcion que realizará el manejo de SIGUSR1. Esta es la que tienes como continuo

Código:
void SIGUSR1Handler(int sig){
   printf("Se ha recibido señal: %d SIGUSR1, continuo, escribir un nuevo nombre de archivo \n",sig1);

}
Al utilizar sprintf lo que haces es mandarlo hacia un array y lo que quieres es mostrar el mensaje en la pantalla por lo que usamos printf

2. Defines tambien la funcion que realizara el manejo de SIGTERM.
Código:
void SIGTERMHandler(int sig){
   printf("Se termina la ejecucion de este prog");
   exit(0);

}
3. En el main das de alta el manejo de estos dos signals mediante
Código:
                 signal(SIGTERM,SIGTERMHandler);
                 signal(SIGUSR1,SIGUSR1Handler);
4. Todo lo que quieras que aparezca en la pantalla lo realizas empleando printf, ya que como te mencionaba mendiante sprintf la salida la envias a un array...

Cita:
sprintf("Tamaño del archivo %s %d bytes.\n",argv[0],buf.st_size);
sprintf("Propietario %s .\n", argv[0], buf.st_uid);
sprintf("Tipo de Fichero %d\n", buf.st_mode);

5. Habria que hacer algunos otros ajusten al main pero lo que te menciono es para darle mas forma a tu prog.

Espero te sirva...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...