ptsname(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | ATTRIBUTES | CONFORMING TO | SEE ALSO | COLOPHON

PTSNAME(3)              Linux Programmer's Manual             PTSNAME(3)

NAME         top

       ptsname, ptsname_r - get the name of the slave pseudoterminal

SYNOPSIS         top

       #include <stdlib.h>

       char *ptsname(int fd);
       int ptsname_r(int fd, char *buf, 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.

VERSIONS         top

       ptsname() is provided in glibc since version 2.1.

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                │
       └───────────────────────┴───────────────┴────────────────────────┘

CONFORMING TO         top

       ptsname():
        POSIX.1-2001, POSIX.1-2008.

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

       ptsname_r() is a Linux extension, that is proposed for inclusion
       in the next major revision of POSIX.1 (Issue 8).  A version of
       this function 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.

SEE ALSO         top

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

COLOPHON         top

       This page is part of release 5.12 of the Linux man-pages project.
       A description of the project, information about reporting bugs,
       and the latest version of this page, can be found at
       https://www.kernel.org/doc/man-pages/.

                               2021-03-22                     PTSNAME(3)

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