/* *Funcion para proteccion de procesos: * * char shield( ); * * Devuelve: cero. * Globales: * int *anti: vector cuyas componentes * son las signals de las que deseamos * protegernos ( acabado en -1 ) * * Notas: * - La funcion de servicio restaura las * protecciones e imprime un mensaje. */ #include #include #include #include "shield.h" void r_servicio(int i); char shield( void ) { int i=0; do { signal(shields[i],r_servicio); } while(shields[++i]!=-1); return(0); } char unshield(void ) { int i=0; do { signal(shields[i],SIG_DFL); } while(shields[++i]!=-1); return(0); } void r_servicio(int i) { shield(); write(2,"No te libraras de mi tan facilmente\n",36); return; }