The man page says that the signal() behavior is BSD, last sentence.

PORTABILITY
       The  original  Unix  signal()  would  reset the handler to
       SIG_DFL, and System V (and the Linux kernel  and  libc4,5)
       does  the same.  On the other hand, BSD does not reset the
       handler, but blocks new  instances  of  this  signal  from
       occurring  during  a  call  of  the  handler.   The glibc2
       library follows the BSD behaviour.

Use sigaction.

On Sun, Jul 30, 2000 at 02:57:52PM +0200, Christophe Leroy wrote:
> 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 ?

read should return on a signal - do you have a test case that shows
differently?

Matt



_______________________________________________
Redhat-devel-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-devel-list

Reply via email to