ttyname
Section: C Library Functions (3)
Updated: 2022-12-15
Index
Return to Main Contents
NAME
ttyname, ttyname_r - return name of a terminal
LIBRARY
Standard C library
(libc, -lc)
SYNOPSIS
#include <unistd.h>
char *ttyname(int fd);
int ttyname_r(int fd, char buf[.buflen], 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 to indicate the error.
The function
ttyname_r()
returns 0 on success, and an error number upon error.
ERRORS
- EBADF
-
Bad file descriptor.
-
-
ENODEV
fd
refers to a slave pseudoterminal device
but the corresponding pathname could not be found (see NOTES).
- ENOTTY
-
fd
does not refer to a terminal device.
- ERANGE
-
(ttyname_r())
buflen
was too small to allow storing the pathname.
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
|
STANDARDS
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)
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- STANDARDS
-
- NOTES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 19:57:49 GMT, April 27, 2024