It's been rumoured that Christophe Leroy said:
>
> Hello,
>
> I'm using gcc on Linux RedHat 6.2
> It's said in man that signal() behaviour is SYSV one. But, when I
> compile my programs, signal() has got the BSD behaviour. Why ?
> How can I make it have SYSV behaviour ?
>
> read() doesn't return on signal. Why ? I want it to return with
> errno=EINTR. How can I do that ?
This may not be helpful, but last time I did this, an interrupt of a
blocked read() of a socket and also of a serial port did indeed return
EINTR (or EAGAIN?) . This was on older versions of redhat.
Not all signals would do this e.g. ignored signals wouldn't. What
signal are you using?
--linas
>
> Thanks
>
> Christophe
>