On Wed, May 04, 2005 at 09:22:09AM -0400, Richard B. Johnson wrote:Does anybody know for sure if global 'errno' is supposed to
be altered after a successful system call? I'm trying to
track down a problem where system calls return with EINTR
even though all signal handlers are set with SA_RESTART in
the flags. It appears as though there may be a race somewhere
because if I directly set errno to 0x1234, within a few
hundred system calls, it gets set to EINTR even though all
system calls seemed to return 'good'. This makes it
hard to trace down the real problem.
http://www.opengroup.org/onlinepubs/009695399/functions/errno.html
is very clear on this. Unless indicated that errno is valid after a call
(for many syscalls it is valid when the syscall returns -1), errno has
unspecified value.
Jakub
-