ctermid, ctermid_r - generate path name for controlling ter-
char *ctermid(char *s);
char *ctermid_r(char *s);
The ctermid() function generates the path name of the con-
trolling terminal for the current process and stores it in a
If s is a null pointer, the string is stored in an internal
static area whose address is returned and whose contents are
overwritten at the next call to ctermid(). Otherwise, s is
assumed to point to a character array of at least L_ctermid
elements. The path name is placed in this array and the
value of s is returned. The constant L_ctermid is defined in
the header <stdio.h>.
The ctermid_r() function behaves as ctermid() except that if
s is a null pointer, the function returns NULL.
The difference between ctermid() and ttyname(3C) is that
ttyname() must be passed a file descriptor and returns the
actual name of the terminal associated with that file
descriptor, while ctermid() returns a string (/dev/tty) that
will refer to the terminal if used as a file name. The
ttyname() function is useful only if the process already has
at least one file open to a terminal.
The ctermid() function is unsafe in multithreaded applica-
tions. The ctermid_r() function is MT-Safe and should be
When compiling multithreaded applications, the _REENTRANT
flag must be defined on the compile line. This flag should
be used only with multithreaded applications.
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Interface Stability | ctermid() is Standard |
| MT-Level | ctermid() is Unsafe;|
| | ctermid_r() is MT-Safe |
Man(1) output converted with