ttyname(3) Library Functions Manual ttyname(3) ttyname, ttyname_r - C (libc, -lc) #include char *ttyname(int fd); int ttyname_r(size_t size; int fd, char buf[size], size_t size); 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 size size. 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. EBADF . 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()) size was too small to allow storing the pathname. attributes(7). +----------------------------+----------------------------------------------------------+--------------------------+ | | | | +----------------------------+----------------------------------------------------------+--------------------------+ |ttyname() | | MT-Unsafe race:ttyname | +----------------------------+----------------------------------------------------------+--------------------------+ |ttyname_r() | | MT-Safe | +----------------------------+----------------------------------------------------------+--------------------------+ POSIX.1-2008. POSIX.1-2001, 4.2BSD. , , pts(4), , /dev/ptmx, , . , . ttyname() ttyname_r() , NULL errno ENODEV. tty(1), fstat(2), ctermid(3), isatty(3), pts(4) () Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov , Kirill Rekhov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux 6.15 28 2025 . ttyname(3)