table of contents
ttyname(3) | Library Functions Manual | ttyname(3) |
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¶
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¶
2022-12-15 | Linux man-pages 6.03 |