John Fawcett: > >> "On success, *getpwnam_r*() and *getpwuid_r*() return zero, and set > >> /*result/ to /pwd/. If no matching password record was found, these > >> functions return 0 and store NULL in /*result/. In case of error, an > >> error number is returned, and NULL is stored in /*result/. "
A zero result value mans that no error occurred; we know for certain that the user exists or does not exist. That's almost consistent with, for example, the XOPEN standard: \ The getpwnam_r() function shall return zero on success or if the requested entry was not found AND NO ERROR HAS OCCURRED. If an error has occurred, an error number shall be returned to indicate the error. What bugs me is the text that follows later in that same Linux manpage: ERRORS 0 or ENOENT or ESRCH or EBADF or EPERM or ... The given name or uid was not found. This text makes no sense. It is in conflict with XOPEN, and with the other quote from the Linux manpage. Wietse