πΎ Archived View for gmi.noulin.net βΊ man βΊ man3 βΊ ttyname.3.gmi captured on 2024-03-21 at 17:15:50. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2022-06-12)
-=-=-=-=-=-=-
TTYNAME(3) Linux Programmer's Manual TTYNAME(3) 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 exβ ample, 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 β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββ΄βββββββββββββββββββββββββ 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) Linux 2021-03-22 TTYNAME(3)