'\" t .\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified Sat Jul 24 19:51:06 1993 by Rik Faith (faith@cs.unc.edu) .TH ctermid 3 2023-07-20 "Linux man-pages 6.05.01" .SH NAME ctermid \- get controlling terminal name .SH LIBRARY Standard C library .RI ( libc ", " \-lc ) .SH SYNOPSIS .nf .B #include .\" POSIX also requires this function to be declared in , .\" and glibc does so if suitable feature test macros are defined. .PP .BI "char *ctermid(char *" "s" ); .fi .PP .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP .BR ctermid (): .nf _POSIX_C_SOURCE .fi .SH DESCRIPTION .BR ctermid () returns a string which is the pathname for the current controlling terminal for this process. If .I s is NULL, a static buffer is used, otherwise .I s points to a buffer used to hold the terminal pathname. The symbolic constant .B L_ctermid is the maximum number of characters in the returned pathname. .SH RETURN VALUE The pointer to the pathname. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .na .nh .BR ctermid () T} Thread safety MT-Safe .TE .sp 1 .SH STANDARDS POSIX.1-2008. .SH HISTORY POSIX.1-2001, Svr4. .SH BUGS The returned pathname may not uniquely identify the controlling terminal; it may, for example, be .IR /dev/tty . .PP It is not assured that the program can open the terminal. .\" in glibc 2.3.x, x >= 4, the glibc headers threw an error .\" if ctermid() was given an argument; fixed in glibc 2.4. .SH SEE ALSO .BR ttyname (3)