NAME | SYNOPSIS | DESCRIPTION | USAGE | ATTRIBUTES | SEE ALSO | NOTES
#include <stdio.h>char *ctermid(char *s);
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> .
The ctermid_r() function behaves as ctermid() except that if s is a null pointer, the function returns NULL . This function is as proposed in the POSIX.4a Draft #6 document, and is subject to change to be compliant to the standard when it is accepted.
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.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
MT-Level | See NOTES below. |
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.
NAME | SYNOPSIS | DESCRIPTION | USAGE | ATTRIBUTES | SEE ALSO | NOTES