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...