ttyname,
ttyname_r, isatty —
get name of associated terminal (tty) from file
descriptor
Standard C Library (libc, -lc)
#include
<unistd.h>
char *
ttyname(int
fd);
int
ttyname_r(int
fd, char *buf,
size_t len);
int
isatty(int
fd);
These functions operate on file descriptors for terminal type
devices.
The
isatty()
function determines if the file descriptor fd refers
to a valid terminal type device.
The
ttyname()
function gets the related device name of a file descriptor for which
isatty() is true.
The
ttyname()
function returns the name stored in a static buffer which will be
overwritten on subsequent calls. The
ttyname_r()
function takes a buffer and length as arguments to avoid this problem.
The isatty() function returns 1 if
fd refers to a terminal type device; otherwise, it
returns 0 and may set errno to indicate the error. The
ttyname() function returns the null terminated name
if the device is found and isatty() is true;
otherwise a NULL pointer is returned. The
ttyname_r() function returns 0 if successful.
Otherwise an error number is returned.
These functions may fail if:
- [
EBADF]
- The fd argument is not a valid file descriptor.
- [
ENOTTY]
- The file associated with fd is not a terminal.
Additionally, ttyname_r() may fail if:
- [
ERANGE]
- The bufsize argument is smaller than the length of
the string to be returned.
The isatty() and
ttyname() functions appeared in
Version 7 AT&T UNIX. The
ttyname_r() function appeared in
FreeBSD 6.0.