On 1/26/19 2:31 PM, Bruno Haible wrote: > Hi, > > The Linux man page for ptsname_r, when describing the behaviour in the error > case, is > - not consistent with the future POSIX standard (POSIX Issue 8). > - not consistent with musl libc. > > Find attached a patch to > - keep it consistent with what glibc does, > - make it consistent with musl libc, > - make it consistent with the future POSIX standard (POSIX Issue 8). > > Details: > > glibc's implementation of ptsname_r, when it fails, returns the error code > as return value AND sets errno. See > https://sourceware.org/git/?p=glibc.git;a=blob;f=login/ptsname.c > https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/mach/hurd/ptsname.c > https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/ptsname.c > > musl's implementation of ptsname_r, when it fails, returns the error code > but does NOT set errno. See > https://git.musl-libc.org/cgit/musl/tree/src/misc/pty.c > > The proposal to add ptsname_r to POSIX, with text > "If successful, the ptsname_r( ) function shall return zero. Otherwise, > an error number shall be returned to indicate the error." > has been accepted for inclusion in POSIX Issue 8. > http://austingroupbugs.net/view.php?id=508 > > Therefore a portable program should look at the return value from ptsname_r, > NOT the errno value. The current text in the man page suggests to look at > the errno value, which is wrong (because of musl libc) and not future-proof > (because of future POSIX). Thanks, Bruno. Patch (finally) applied. Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/