CTERMID(3C) Standard C Library Functions CTERMID(3C)
NAME
ctermid, ctermid_r - generate path name for controlling terminal
SYNOPSIS
#include <stdio.h>
char *ctermid(
char *s);
char *ctermid_r(
char *s);
DESCRIPTION
ctermid() The
ctermid() function generates the path name of the controlling
terminal for the current process and stores it in a string.
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>.
ctermid_r() The
ctermid_r() function behaves as
ctermid() except that if
s is a
null pointer, the function returns
NULL.
USAGE
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 applications. The
ctermid_r() function is MT-Safe and should be used instead.
When compiling multithreaded applications, the
_REENTRANT flag must
be defined on the compile line. This flag should be used only with
multithreaded applications.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+------------------------+
|Interface Stability |
ctermid() is Standard |
+--------------------+------------------------+
|MT-Level |
ctermid() is Unsafe; |
| |
ctermid_r() is MT-Safe |
+--------------------+------------------------+
SEE ALSO
ttyname(3C),
attributes(7) July 25, 2000 CTERMID(3C)