ptsname(3) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON

ptsname(3)              Library Functions Manual              ptsname(3)

NAME         top

       ptsname, ptsname_r - get the name of the slave pseudoterminal

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <stdlib.h>

       char *ptsname(int fd);
       int ptsname_r(int fd, char buf[.buflen], size_t buflen);

   Feature Test Macro Requirements for glibc (see
   feature_test_macros(7)):

       ptsname():
           Since glibc 2.24:
               _XOPEN_SOURCE >= 500
           glibc 2.23 and earlier:
               _XOPEN_SOURCE

       ptsname_r():
           _GNU_SOURCE

DESCRIPTION         top

       The ptsname() function returns the name of the slave
       pseudoterminal device corresponding to the master referred to by
       the file descriptor fd.

       The ptsname_r() function is the reentrant equivalent of
       ptsname().  It returns the name of the slave pseudoterminal
       device as a null-terminated string in the buffer pointed to by
       buf.  The buflen argument specifies the number of bytes available
       in buf.

RETURN VALUE         top

       On success, ptsname() returns a pointer to a string in static
       storage which will be overwritten by subsequent calls.  This
       pointer must not be freed.  On failure, NULL is returned.

       On success, ptsname_r() returns 0.  On failure, an error number
       is returned to indicate the error.

ERRORS         top

       EINVAL (ptsname_r() only) buf is NULL.  (This error is returned
              only for glibc 2.25 and earlier.)

       ENOTTY fd does not refer to a pseudoterminal master device.

       ERANGE (ptsname_r() only) buf is too small.

ATTRIBUTES         top

       For an explanation of the terms used in this section, see
       attributes(7).
       ┌──────────────────────┬───────────────┬────────────────────────┐
       │ Interface            Attribute     Value                  │
       ├──────────────────────┼───────────────┼────────────────────────┤
       │ ptsname()            │ Thread safety │ MT-Unsafe race:ptsname │
       ├──────────────────────┼───────────────┼────────────────────────┤
       │ ptsname_r()          │ Thread safety │ MT-Safe                │
       └──────────────────────┴───────────────┴────────────────────────┘

VERSIONS         top

       A version of ptsname_r() is documented on Tru64 and HP-UX, but on
       those implementations, -1 is returned on error, with errno set to
       indicate the error.  Avoid using this function in portable
       programs.

STANDARDS         top

       ptsname():
              POSIX.1-2008.

       ptsname_r() is a Linux extension, that is proposed for inclusion
       in the next major revision of POSIX.1 (Issue 8).

HISTORY         top

       ptsname():
              POSIX.1-2001.  glibc 2.1.

       ptsname() is part of the UNIX 98 pseudoterminal support (see
       pts(4)).

SEE ALSO         top

       grantpt(3), posix_openpt(3), ttyname(3), unlockpt(3), pts(4),
       pty(7)

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       [email protected]

Linux man-pages 6.9.1          2024-05-02                     ptsname(3)

Pages that refer to this page: TIOCPKT(2const)getpt(3)grantpt(3)posix_openpt(3)unlockpt(3)pts(4)pty(7)