miércoles, 21 de julio de 2010

Señales en C

Un pequeño programa que implementa el manejo de señales en c en base a estructuras y punteros.

/**********signal_c.c**************/
#include

struct Punteros_a_Funciones{
void (*leer)();
};
typedef struct Punteros_a_Funciones puntero_a_func;
typedef void* data;
#define VOID_POINTER (void*)
#define SIGNAL_FUC(f) ((SignalFunc)f)
typedef void (*SignalFunc) (void);

void signal_1()
{
printf("signal_1\n");
}

void signal_2()
{
printf("signal_2\n");
}
puntero_a_func Pasando_punteros(SignalFunc funci)
{
puntero_a_func puntero = { SIGNAL_FUC(funci)};
return puntero;
}
int main()
{
puntero_a_func Voides;
SignalFunc funci;

funci=signal_1;
Voides = Pasando_punteros(funci);
Voides.leer();

funci=signal_2;
Voides = Pasando_punteros(funci);
Voides.leer();
return 0;
}

/**********************************/
Compilacion:
gcc -o signal_c signal_c.c

No hay comentarios:

Publicar un comentario