C/Visual C - Funciones signal y kill

 
Vista:

Funciones signal y kill

Publicado por Juan (1 intervención) el 12/05/2007 20:29:52
Buenas tardes,
Tengo una serie de dudas sobre las funciones signal y kill y a ver si podeis ayudarme, pq no entiendo muy bien el funcionamineto y no avanzo.
Con la funcion signal asociamos una señal a una funcion, por ejemplo si pongo signal(SIGSTOP,comandoABackground)).
Con eso cuando se produzca una señal del tipo SIGSTOP ejecutara la funcion comandoABackground.
Para producir la señal debo ejecutar kill(pid del comando q qiera usar, STOP). Se producira la señal y se ejecutara la funcion.
El problema esq para que la funcion sea valida para signal no tiene q tener argumentos de entrada, pero yo necesito y encima tengo la funcion en otra libreria. En los ejemplos que he visto la funcion estaba junto al programa principal y las variables eran globales, pero al estar en una libreria no se como hacerlo.
Si estoy eqivocado en los conceptos x favor decirmelo.
Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funciones signal y kill

Publicado por Tom (27 intervenciones) el 14/05/2007 20:57:16
Si tu problema es que tienes que usar variables sólo visibles para la otra librería, debes declararlas en tu programa con "extern".

De todos modos, sin saber más es difícil dar pistas, pero haz algo así:

#include <libreriaExterna.h>

int param1;
int param2;

extern int varExterna; /* (definido en libreriaExterna.h) */

/* */
void sigHandler1() {
funcionDeLibreriaExterna(param1, param2);
}

/* */
int main() {
...
...
...
param1 = 1;
param2 = 100;
varExterna = 1200;

signal(SIGSTOP, sigHandler1);
...
...
...
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar