Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!vision!ukpoit!alan From: alan@ukpoit.co.uk (Alan Barclay) Newsgroups: comp.unix.questions Subject: Re: What was the signal? Message-ID: <1991Mar20.114107.2078@ukpoit.co.uk> Date: 20 Mar 91 11:41:07 GMT References: <1991Mar20.113657.1959@ukpoit.co.uk> Organization: iT - The Information Technology Business Of The Post Office Lines: 11 In article <1991Mar20.113657.1959@ukpoit.co.uk> howard@ukpoit.co.uk (Howard the Hacker) writes: > >I have a C program doing a msgrcv(2) which may be interrupted by a SIGALRM. This >is processed by a handler function. On return a failure of msgrcv is found >and found to be due to an interrupt. The question is, will any ignored signal >(ignored by default) also interrupt the msgrcv, and if so is it possible to find >out what the actual signal was? If the signal was not SIGALRM, the msgrcv should >not be tried again, but how can I tell? catch SIGALRM, using signal(2), set a flag in the signal catching routine, and check for the flag being set.