TTYNAME(3)

NAME
ttyname, ttyname_r, isatty - get name of associated terminal (tty) from file descriptor

LIBRARY
libc

SYNOPSIS
#include <unistd.h>
char *
ttyname(int fd);
int
ttyname_r(int fd, char *buf, size_t len);
int
isatty(int fd);

DESCRIPTION
These functions operate on the system file descriptors for terminal type devices. These descriptors are not related to the standard I/O FILE typedef, but refer to the special device files found in /dev and named /dev/ttyxx and for which an entry exists in the initialization file /etc/ttys. (See ttys(5).)

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.

RETURN VALUES
The isatty() function returns 1 if the file descriptor refers to a valid terminal device and 0 otherwise.

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.

FILES
/dev/*
/etc/ttys

ERRORS
The ttyname(), ttyname_r(), and isatty() functions may fail and return the following error codes:

[EBADF]
    The fd is not a valid open file descriptor.

[ENOTTY]
    The fd is not associated with a terminal.

[ERANGE]
    The bufsize argument is smaller than the length of the string to be returned.

SEE ALSO
ioctl(2), ttys(5)

HISTORY
The isatty() and ttyname() functions appeared in AT&T UNIX. The ttyname_r() function appeared in FreeBSD 6.0.