8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3c / ttyname.3c
blobd0efe1f620a30246400ab91686d7779af4eb57ef
1 '\" te
2 .\" Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved.
3 .\" Copyright 1989 AT&T
4 .\" Portions Copyright (c) 1992, X/Open Company Limited.  All Rights Reserved.
5 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
6 .\" http://www.opengroup.org/bookstore/.
7 .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html.
8 .\"  This notice shall appear on any product containing this material.
9 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
10 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
11 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
12 .TH TTYNAME 3C "Mar 31, 2005"
13 .SH NAME
14 ttyname, ttyname_r \- find pathname of a terminal
15 .SH SYNOPSIS
16 .LP
17 .nf
18 #include <unistd.h>
20 \fBchar *\fR\fBttyname\fR(\fBint\fR \fIfildes\fR);
21 .fi
23 .LP
24 .nf
25 \fBchar *\fR\fBttyname_r\fR(\fBint\fR \fIfildes\fR, \fBchar *\fR\fIname\fR, \fBint\fR \fInamelen\fR);
26 .fi
28 .SS "Standard conforming"
29 .LP
30 .nf
31 cc [ \fIflag\fR...] \fIfile\fR ... \fB-D_POSIX_PTHREAD_SEMANTICS\fR [ \fIlibrary\fR ... ]
33 \fBint\fR \fBttyname_r\fR(\fBint\fR \fIfildes\fR, \fBchar *\fR\fIname\fR, \fBsize_t\fR \fInamesize\fR);
34 .fi
36 .SH DESCRIPTION
37 .sp
38 .LP
39 The \fBttyname()\fR function returns a pointer to a string containing the
40 null-terminated path name of the terminal device associated with file
41 descriptor \fIfildes\fR. The return value points to thread-specific data whose
42 content is overwritten by each call from the same thread.
43 .sp
44 .LP
45 The \fBttyname_r()\fR function has the same functionality as \fBttyname()\fR
46 except that the caller must supply a buffer \fIname\fR with length
47 \fInamelen\fR to store the result; this buffer must be at least
48 \fB_POSIX_PATH_MAX\fR in size (defined in <\fBlimits.h\fR>). The
49 standard-conforming version (see \fBstandards\fR(5)) of \fBttyname_r()\fR takes
50 a \fInamesize\fR parameter of type \fBsize_t\fR.
51 .SH RETURN VALUES
52 .sp
53 .LP
54 Upon successful completion, \fBttyname()\fR and \fBttyname_r()\fR return a
55 pointer to a string. Otherwise, a null pointer is returned and \fBerrno\fR is
56 set to indicate the error.
57 .sp
58 .LP
59 The standard-conforming \fBttyname_r()\fR returns 0 if successful or the error
60 number upon failure.
61 .SH ERRORS
62 .sp
63 .LP
64 The \fBttyname()\fR and \fBttyname_r()\fR functions may fail if:
65 .sp
66 .ne 2
67 .na
68 \fB\fBEBADF\fR\fR
69 .ad
70 .RS 10n
71 The \fIfildes\fR argument is not a valid file descriptor. This condition is
72 reported.
73 .RE
75 .sp
76 .ne 2
77 .na
78 \fB\fBENOTTY\fR\fR
79 .ad
80 .RS 10n
81 The \fIfildes\fR argument does not refer to a terminal device. This condition
82 is reported.
83 .RE
85 .sp
86 .LP
87 The \fBttyname_r()\fR function may fail if:
88 .sp
89 .ne 2
90 .na
91 \fB\fBERANGE\fR\fR
92 .ad
93 .RS 10n
94 The value of \fInamesize\fR is smaller than the length of the string to be
95 returned including the terminating null character.
96 .RE
98 .SH ATTRIBUTES
99 .sp
101 See \fBattributes\fR(5) for descriptions of the following attributes:
106 box;
107 c | c
108 l | l .
109 ATTRIBUTE TYPE  ATTRIBUTE VALUE
111 Interface Stability     Standard
113 MT-Level        Safe
116 .SH SEE ALSO
119 \fBIntro\fR(3), \fBgettext\fR(3C), \fBsetlocale\fR(3C), \fBattributes\fR(5),
120 \fBstandards\fR(5)
121 .SH NOTES
124 When compiling multithreaded applications, see \fBIntro\fR(3), \fINotes On
125 Multithreaded Applications\fR.
128 Messages printed from this function are in the native language specified by the
129 \fBLC_MESSAGES\fR locale category. See \fBsetlocale\fR(3C).
132 The return value of \fBttyname()\fR points to thread-specific data whose
133 content is overwritten by each call from the same thread. This function is safe
134 to use in multithreaded applications, but its use is discouraged. The
135 \fBttyname_r()\fR function should used instead.
138 Solaris 2.4 and earlier releases provided definitions of the \fBttyname_r()\fR
139 interface as specified in POSIX.1c Draft 6. The final POSIX.1c standard changed
140 the interface as described above. Support for the Draft 6 interface is provided
141 for compatibility only and might not be supported in future releases. New
142 applications and libraries should use the standard-conforming interface.