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