[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    ttyname(3C) manual page Table of Contents

Name

ttyname, ttyname_r, isatty - find name of a terminal

Synopsis

#include <stdlib.h>

char *ttyname(int fildes);

int isatty(int fildes);

char *ttyname_r(int fildes, char *name, int namelen);

Posix

cc [ flag... ] file ... -D_POSIX_PTHREAD_SEMANTICS [ library... ]

int ttyname_r(int fildes, char *name, size_t namesize);

MT-Level

See the NOTES section of this page.

Description

ttyname() returns a pointer to a string containing the null-terminated path name of the terminal device associated with file descriptor fildes.

ttyname_r() 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 POSIX version of ttyname_r() takes a namesize parameter of type size_t.

isatty() returns 1 if fildes is associated with a terminal device, 0 otherwise.

Return Values

ttyname() and ttyname_r() return a NULL pointer if fildes does not describe a terminal device in directory /dev. The POSIX ttyname_r() returns zero if successful, or the error number upon failure.

Errors

ttyname_r() will fail if the following is true:

ERANGE
The size of the buffer is smaller than the result to be returned.

Files

/dev/*

See Also

gettext(3I) , setlocale(3C)

Notes

When compiling multithread programs, see Intro(3) , Notes On Multithread Applications.

If the application is linked with -lintl, then messages printed from this function are in the native language specified by the LC_MESSAGES locale category; see setlocale(3C) .

The return value points to static data whose content is overwritten by each call.

ttyname() is unsafe in multi-thread applications. ttyname_r() is MT-Safe, and should be used instead. isatty() is MT-Safe in multi-thread applications.

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 may not be supported in future releases. New applications and libraries should use the POSIX standard interface.


Table of Contents