TTYNAME
Section: Linux Programmer's Manual (3)
Updated: 2017-05-03
Index
Return to Main Contents
NAME
ttyname, ttyname_r - return name of a terminal
SYNOPSIS
#include <unistd.h>
char *ttyname(int fd);
int ttyname_r(int fd, char *buf, size_t buflen);
DESCRIPTION
The function
ttyname()
returns a pointer to the null-terminated pathname of the terminal device
that is open on the file descriptor
fd, or NULL on error
(for example, if
fd is not connected to a terminal).
The return value may point to static data, possibly overwritten by the
next call.
The function
ttyname_r()
stores this pathname in the buffer
buf
of length
buflen.
RETURN VALUE
The function
ttyname()
returns a pointer to a pathname on success.
On error, NULL is returned, and
errno
is set appropriately.
The function
ttyname_r()
returns 0 on success, and an error number upon error.
ERRORS
- EBADF
-
Bad file descriptor.
- ENOTTY
-
File descriptor does not refer to a terminal device.
- ERANGE
-
(ttyname_r())
buflen
was too small to allow storing the pathname.
-
-
ENODEV
File descriptor refers to a slave pseudoterminal device
but the corresponding pathname could not be found (see NOTES).
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
Interface | Attribute | Value
|
ttyname()
| Thread safety | MT-Unsafe race:ttyname
|
ttyname_r()
| Thread safety | MT-Safe
|
CONFORMING TO
POSIX.1-2001, POSIX.1-2008, 4.2BSD.
NOTES
A process that keeps a file descriptor that refers to a
pts(4)
device open when switching to another mount namespace that uses a different
/dev/ptmx
instance may still accidentally find that a device path of the same name
for that file descriptor exists.
However, this device path refers to a different device and thus
can't be used to access the device that the file descriptor refers to.
Calling
ttyname()
or
ttyname_r()
on the file descriptor in the new mount namespace will cause these
functions to return NULL and set
errno
to
ENODEV.
SEE ALSO
tty(1),
fstat(2),
ctermid(3),
isatty(3),
pts(4)
COLOPHON
This page is part of release 4.13 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/.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- CONFORMING TO
-
- NOTES
-
- SEE ALSO
-
- COLOPHON
-