]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/ptsname.3
ctime.3: wfix
[thirdparty/man-pages.git] / man3 / ptsname.3
CommitLineData
2d6c6dd1 1.\" %%%LICENSE_START(PUBLIC_DOMAIN)
fea681da 2.\" This page is in the public domain. - aeb
2d6c6dd1 3.\" %%%LICENSE_END
fea681da 4.\"
72897648
MK
5.\" 2004-12-17, mtk, added description of ptsname_r() + ERRORS
6.\"
4b8c67d9 7.TH PTSNAME 3 2017-09-15 "" "Linux Programmer's Manual"
fea681da 8.SH NAME
b218b023 9ptsname, ptsname_r \- get the name of the slave pseudoterminal
fea681da 10.SH SYNOPSIS
fea681da 11.B #include <stdlib.h>
68e4db0a 12.PP
fea681da 13.BI "char *ptsname(int " fd ");"
72897648 14.br
55fbb69b 15.BI "int ptsname_r(int " fd ", char *" buf ", size_t " buflen ");"
c2ba3716
FT
16.PP
17.in -4n
18Feature Test Macro Requirements for glibc (see
19.BR feature_test_macros (7)):
20.in
21.PP
22.ad l
23.BR ptsname ():
24.br
25.RS 4
26Since glibc 2.24:
27 _XOPEN_SOURCE\ >=\ 500 ||
28 (_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED)
29.br
30Glibc 2.23 and earlier:
31 _XOPEN_SOURCE
32.RE
33.PP
34.BR ptsname_r ():
35 _GNU_SOURCE
36.ad
fea681da
MK
37.SH DESCRIPTION
38The
39.BR ptsname ()
b218b023 40function returns the name of the slave pseudoterminal device
72897648 41corresponding to the master referred to by
fea681da 42.IR fd .
847e0d88 43.PP
72897648
MK
44The
45.BR ptsname_r ()
46function is the reentrant equivalent of
47.BR ptsname ().
b218b023 48It returns the name of the slave pseudoterminal device as a
72897648
MK
49null-terminated string in the buffer pointed to by
50.IR buf .
51The
52.I buflen
53argument specifies the number of bytes available in
54.IR buf .
47297adb 55.SH RETURN VALUE
72897648 56On success,
fea681da 57.BR ptsname ()
72897648
MK
58returns a pointer to a string in static storage which will be
59overwritten by subsequent calls.
60This pointer must not be freed.
b437fdd9 61On failure, NULL is returned.
847e0d88 62.PP
72897648
MK
63On success,
64.BR ptsname_r ()
65returns 0.
8d4d268f
BH
66On failure, an error number is returned to indicate the error.
67.\" In glibc, the error number is not only returned as the return value
68.\" but also stored in errno. But this is not true for musl libc.
72897648
MK
69.SH ERRORS
70.TP
71.B EINVAL
72.RB ( ptsname_r ()
73only)
74.I buf
75is NULL.
7676eafe
MK
76(This error is returned only for
77.\" glibc commit 8f0a947cf55f3b0c4ebdf06953c57eff67a22fa9
78glibc 2.25 and earlier.)
72897648
MK
79.TP
80.B ENOTTY
81.I fd
b218b023 82does not refer to a pseudoterminal master device.
72897648
MK
83.TP
84.B ERANGE
85.RB ( ptsname_r ()
86only)
87.I buf
88is too small.
c343e74c
MK
89.SH VERSIONS
90.BR ptsname ()
91is provided in glibc since version 2.1.
1d94efa5 92.SH ATTRIBUTES
447d472c
PH
93For an explanation of the terms used in this section, see
94.BR attributes (7).
95.TS
96allbox;
97lb lb lb
98l l l.
99Interface Attribute Value
100T{
1d94efa5 101.BR ptsname ()
f13ba82a 102T} Thread safety MT-Unsafe race:ptsname
447d472c 103T{
1d94efa5 104.BR ptsname_r ()
447d472c
PH
105T} Thread safety MT-Safe
106.TE
47297adb 107.SH CONFORMING TO
b0786370
MK
108.BR ptsname ():
109 POSIX.1-2001, POSIX.1-2008.
847e0d88 110.PP
72897648 111.BR ptsname ()
b218b023 112is part of the UNIX 98 pseudoterminal support (see
72897648 113.BR pts (4)).
847e0d88 114.PP
704a18f0 115.BR ptsname_r ()
97d8fd29
MK
116is a Linux extension, that is proposed for inclusion
117.\" FIXME . for later review when Issue 8 is one day released
118.\" http://austingroupbugs.net/tag_view_page.php?tag_id=8
119.\" http://austingroupbugs.net/view.php?id=508
120in the next major revision of POSIX.1 (Issue 8).
85eb6f28 121A version of this function is documented on Tru64 and HP-UX, but
8729177b 122on those implementations, \-1 is returned on error, with
72897648
MK
123.I errno
124set to indicate the error.
125Avoid using this function in portable programs.
47297adb 126.SH SEE ALSO
fea681da 127.BR grantpt (3),
a856c2ea 128.BR posix_openpt (3),
fea681da 129.BR ttyname (3),
a856c2ea 130.BR unlockpt (3),
88ab292b
MK
131.BR pts (4),
132.BR pty (7)