On Tue, May 07, 2013 at 03:25:04PM +0200, Remco wrote:
| The way I read the man page on my OpenBSD 5.2 system, as well as on the 
| www.openbsd.org web site, errno has no specific meaning when getpwuid 
| returns. It only tells you whether it succeeded or not, it doesn't say it 
| sets errno, nor does it provide a clear way to determine why the function 
| didn't succeed. (however, if you're right the man page may be lacking)

Where do you see that ?  errno is not used to tell you wether a call
succeeded or not.  If a call did not succeed, errno would get set.  If
a call was successful, it never sets errno.

>From intro(2) (get there via the errno(2) mlink):

        When a system call detects an error, it returns an
        integer value indicating failure (usually -1) and
        sets the variable errno accordingly.  (This allows
        interpretation of the failure on receiving a -1
        and to take action accordingly.)  Successful calls
        never set errno; once set, it remains until
        another error occurs.  It should only be examined
        after an error.

This is how errno should behave across the entire system.  If you find
a case where this is not true, please report it.

Paul 'WEiRD' de Weerd

-- 
>++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
                 http://www.weirdnet.nl/                 

Reply via email to