peter@sugar.UUCP (Peter da Silva) (08/03/87)
I think having four seperate break levels is a little redundent... does anyone actually use them? But here's what you should do. flags = Wait(whatever_other_signals | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D | SIGBREAKF_CTRL_E | SIGBREAKF_CTRL_F); if(flags & SIGBREAKF_CTRL_C) { printf("^C\n"); close files in an orderly fashion. exit(RETURN_ERROR); } if(flags & (SIGBREAKF_CTRL_D | SIGBREAKF_CTRL_E | SIGBREAKF_CTRL_F) ) { do absolute minimal cleanup exit(RETURN_FAIL); } process other signals and messages. Speaking of signals... BEWARE! Just because Wait() says a message has come, don't assume it's actually come. Wait sometimes returns a signal bit set even with no message available on the port... particularly if you've just opened a device. Moral: always check the return from GetMsg(). -- -- Peter da Silva `-_-' ...!seismo!soma!uhnix1!sugar!peter (I said, NO PHOTOS!)