NAME
ttyname
,
ttyname_r
, isatty
,
ttyslot
—
get name of associated terminal (tty)
from file descriptor
SYNOPSIS
#include
<unistd.h>
char *
ttyname
(int
fd);
int
ttyname_r
(int
fd, char *name,
size_t namesize);
int
isatty
(int
fd);
#include
<stdlib.h>
int
ttyslot
(void);
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
()
and
ttyname_r
()
functions get the related device name of a file descriptor for which
isatty
() is true. The
ttyname_r
() function stores the NUL-terminated
pathname of the terminal associated with the file descriptor
fd in the character array referenced by
name. The array is namesize
characters long and should have space for the name and the terminating NUL
character. The maximum length of the terminal name is
TTY_NAME_MAX
.
The
ttyslot
()
function fetches the current process's controlling terminal number from the
ttys(5) file entry.
RETURN VALUES
The ttyname
() function returns the
NUL-terminated name if the device is found and
isatty
() is true; otherwise a null pointer is
returned and errno is set to indicate the error.
The ttyname_r
() function returns zero if
successful; otherwise an error number is returned.
The isatty
() function returns 1 if
fd is associated with a terminal device; otherwise it
returns 0 and errno is set to indicate the error.
The ttyslot
() function returns the unit
number of the device file if found; otherwise the value zero is
returned.
FILES
- /dev/∗
- /etc/ttys
ERRORS
The ttyname
(),
ttyname_r
(), and isatty
()
functions will fail if:
- [
EBADF
] - The fd argument is not a valid file descriptor.
- [
ENOTTY
] - The fd argument does not refer to a terminal device.
- [
ERANGE
] - The value of namesize is smaller than the length of the string to be returned including the terminating NUL character.
SEE ALSO
HISTORY
The isatty
(),
ttyname
(), and ttyslot
()
functions appeared in Version 7 AT&T
UNIX. The ttyname_r
() function appeared in
the POSIX Threads Extension (1003.1c-1995).
BUGS
The ttyname
() function leaves its result
in an internal static object and returns a pointer to that object.
Subsequent calls to ttyname
() will modify the same
object.