Foros del Web » Administración de Sistemas » Unix / Linux »

Gestión de señales

Estas en el tema de Gestión de señales en el foro de Unix / Linux en Foros del Web. Buenas tardes. A ver si alguien puede echarme una mano con esto: Resulta que debo enviar señales desde el teclado para hacer cosas con un ...
  #1 (permalink)  
Antiguo 10/10/2007, 09:23
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Gestión de señales

Buenas tardes.

A ver si alguien puede echarme una mano con esto:

Resulta que debo enviar señales desde el teclado para hacer cosas con un fichero:

1. Si el fichero no existe, lo creo vacío.

2. Si el fichero existe, se bloquea el programa y espera una señal desde el teclado
con kill, si se recibe SIGUSR1 sobreescribe el fichero, y si recibe SIGUSR2 no hace nada.

Los manejadores para hacer cada cosa según la señal los tengo hechos, pero cómo puedo mandar una señal desde el teclado sin usar el scanf????

Muchas gracias de antemano por vuestra ayuda.

int main() {

int result, vacio;
char c[180];
char sig[80];

if ((result=open("resultado.dat",O_RDONLY)) < 0) {
/* Puede ser que el fichero no exista, en ese caso lo creo vacío*/
sprintf(c,"El fichero no existe, voy a crearlo vacío\n");
write(2,c,strlen(c));
vacio = open("resultado.dat",O_WRONLY|O_CREAT,0600);
close(vacio);
}

else { /*El fichero existe*/
sprintf(c,"Fichero existente. Escribir kill -12 para acabar, kill -10 para seguir\n");
write(2,c,strlen(c));

scanf("%s",sig); DE AQUÍ EN ADELANTE ES DONDE TENGO EL PROBLEMA

if(strcmp(sig,"kill -12")){
/*sigusr2 no debo hacer nada*/
close(result);
signal(SIGUSR2,quehagosigusr2); /*sigusr2 no debo hacer nada*/
}
if(strcmp(sig,"kill -10")){
/*sigusr1 tengo sobreescribir fichero*/
close(result);
signal(SIGUSR1,quehagosigusr1); /*sigusr1 tengo sobreescribir fichero*/
}

}



}
  #2 (permalink)  
Antiguo 10/10/2007, 12:10
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 3 meses
Puntos: 29
Re: Gestión de señales

Por favor no repitas temas en diferentes foros. Se cierra este post.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:50.