TTYNAME(3C) Standard C Library Functions TTYNAME(3C)
NAME
ttyname, ttyname_r - find pathname of a terminal
SYNOPSIS
#include <unistd.h>
char *ttyname(
int fildes);
char *ttyname_r(
int fildes,
char *name,
int namelen);
Standard conforming
cc [
flag...]
file ...
-D_POSIX_PTHREAD_SEMANTICS [
library ... ]
int ttyname_r(
int fildes,
char *name,
size_t namesize);
DESCRIPTION
The
ttyname() function returns a pointer to a string containing the null-
terminated path name of the terminal device associated with file
descriptor
fildes. The return value points to thread-specific data whose
content is overwritten by each call from the same thread.
The
ttyname_r() function has the same functionality as
ttyname() except
that the caller must supply a buffer
name with length
namelen to store
the result; this buffer must be at least
_POSIX_PATH_MAX in size (defined
in <
limits.h>). The standard-conforming version (see
standards(7)) of
ttyname_r() takes a
namesize parameter of type
size_t.
RETURN VALUES
Upon successful completion,
ttyname() and
ttyname_r() return a pointer to
a string. Otherwise, a null pointer is returned and
errno is set to
indicate the error.
The standard-conforming
ttyname_r() returns 0 if successful or the error
number upon failure.
ERRORS
The
ttyname() and
ttyname_r() functions may fail if:
EBADF The
fildes argument is not a valid file descriptor. This
condition is reported.
ENOTTY The
fildes argument does not refer to a terminal device. This
condition is reported.
The
ttyname_r() function may fail if:
ERANGE The value of
namesize is smaller than the length of the string
to be returned including the terminating null character.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
Intro(3),
gettext(3C),
setlocale(3C),
attributes(7),
standards(7)NOTES
When compiling multithreaded applications, see
Intro(3),
Notes On Multithreaded Applications.
Messages printed from this function are in the native language specified
by the
LC_MESSAGES locale category. See
setlocale(3C).
The return value of
ttyname() points to thread-specific data whose
content is overwritten by each call from the same thread. This function
is safe to use in multithreaded applications, but its use is discouraged.
The
ttyname_r() function should used instead.
Solaris 2.4 and earlier releases provided definitions of the
ttyname_r() interface as specified in POSIX.1c Draft 6. The final POSIX.1c standard
changed the interface as described above. Support for the Draft 6
interface is provided for compatibility only and might not be supported
in future releases. New applications and libraries should use the
standard-conforming interface.
March 31, 2005
TTYNAME(3C)