#include int main() { int result, sigval, b_core, exitval; char *red = "\033[101m"; char *cyan = "\033[106m"; char *off = "\033[m"; while (1) { result = system("perl ./done_server direct"); sigval = result & 0x7f; b_core = result & 0x80; exitval = (result >> 8) & 0xff; if (2 == sigval) { // User typed ^C printf("\n%s** Break **%s\n", cyan, off); exit(1); } printf("\n%sERROR -- The done_server exited%s\n", red, off); printf("%sResult = %d [%08lx]%s\n", red, result, result, off); printf("%sCoredump = %d%s\n", red, b_core, off); printf("%sExit val = %d%s\n", red, exitval, off); printf("Respawning ...\n"); } } /******************* *** End of main *** *******************/