#include #include #include #include #include "errors.h" /* solo se muere una vez */ void obito(int quien, int restos_mortales) { char str[255]; if ( quien == -1 ) { DoError(SYS_ERR,INFO_ERR,"Error wait:%d", errno); return; } sprintf(str, "\nHa pasado a mejor vida el proceso %d ( R.I.P. )\n" ,quien ); write(2,str,strlen(str)); if((restos_mortales & 0x00ff) == 0 ) { /* Habiendo recibido los santos sacramentos */ sprintf(str,"Murio en estado de gracia ( %d )\n", restos_mortales / 256 ); write(2,str,strlen(str)); } else { /* De forma misteriosa */ sprintf(str, "Murio a consecuencia de una herida de signal %d\n", restos_mortales & 0x007F); write(2,str,strlen(str)); if((restos_mortales &0x0080)!=0) { sprintf(str, "Su cuerpo queda a disposicion del forense en core\n"); write(2,str,strlen(str)); } } return; }