]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/unlocked_stdio.3
signal.7: Note async-signal-safe functions added by POSIX.1-2008 TC1
[thirdparty/man-pages.git] / man3 / unlocked_stdio.3
CommitLineData
fea681da
MK
1.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
2.\"
93015253 3.\" %%%LICENSE_START(VERBATIM)
fea681da
MK
4.\" Permission is granted to make and distribute verbatim copies of this
5.\" manual provided the copyright notice and this permission notice are
6.\" preserved on all copies.
7.\"
8.\" Permission is granted to copy and distribute modified versions of this
9.\" manual under the conditions for verbatim copying, provided that the
10.\" entire resulting derived work is distributed under the terms of a
11.\" permission notice identical to this one.
c13182ef 12.\"
fea681da
MK
13.\" Since the Linux kernel and libraries are constantly changing, this
14.\" manual page may be incorrect or out-of-date. The author(s) assume no
15.\" responsibility for errors or omissions, or for damages resulting from
16.\" the use of the information contained herein. The author(s) may not
17.\" have taken the same level of care in the production of this manual,
18.\" which is licensed free of charge, as they might when working
19.\" professionally.
c13182ef 20.\"
fea681da
MK
21.\" Formatted or processed versions of this manual, if unaccompanied by
22.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 23.\" %%%LICENSE_END
fea681da 24.\"
460495ca 25.TH UNLOCKED_STDIO 3 2015-08-08 "" "Linux Programmer's Manual"
fea681da 26.SH NAME
69b29c78 27getc_unlocked, getchar_unlocked, putc_unlocked,
24b74457 28putchar_unlocked \- nonlocking stdio functions
fea681da
MK
29.SH SYNOPSIS
30.nf
31.B #include <stdio.h>
32.sp
33.BI "int getc_unlocked(FILE *" stream );
0daa9e92 34.B "int getchar_unlocked(void);"
fea681da
MK
35.BI "int putc_unlocked(int " c ", FILE *" stream );
36.BI "int putchar_unlocked(int " c );
37.sp
fea681da
MK
38.BI "void clearerr_unlocked(FILE *" stream );
39.BI "int feof_unlocked(FILE *" stream );
40.BI "int ferror_unlocked(FILE *" stream );
41.BI "int fileno_unlocked(FILE *" stream );
42.BI "int fflush_unlocked(FILE *" stream );
43.BI "int fgetc_unlocked(FILE *" stream );
44.BI "int fputc_unlocked(int " c ", FILE *" stream );
45.BI "size_t fread_unlocked(void *" ptr ", size_t " size ", size_t " n ,
62218dc0 46.BI " FILE *" stream );
fea681da 47.BI "size_t fwrite_unlocked(const void *" ptr ", size_t " size ", size_t " n ,
62218dc0 48.BI " FILE *" stream );
fea681da 49.sp
fea681da
MK
50.BI "char *fgets_unlocked(char *" s ", int " n ", FILE *" stream );
51.BI "int fputs_unlocked(const char *" s ", FILE *" stream );
52.sp
fea681da
MK
53.B #include <wchar.h>
54.sp
55.BI "wint_t getwc_unlocked(FILE *" stream );
0daa9e92 56.B "wint_t getwchar_unlocked(void);"
fea681da
MK
57.BI "wint_t fgetwc_unlocked(FILE *" stream );
58.BI "wint_t fputwc_unlocked(wchar_t " wc ", FILE *" stream );
59.BI "wint_t putwc_unlocked(wchar_t " wc ", FILE *" stream );
60.BI "wint_t putwchar_unlocked(wchar_t " wc );
61.BI "wchar_t *fgetws_unlocked(wchar_t *" ws ", int " n ", FILE *" stream );
62.BI "int fputws_unlocked(const wchar_t *" ws ", FILE *" stream );
63.fi
0f200f07
MK
64.sp
65.in -4n
66Feature Test Macro Requirements for glibc (see
67.BR feature_test_macros (7)):
68.ad l
69.in
70.sp
71.BR getc_unlocked (),
72.BR getchar_unlocked (),
73.BR putc_unlocked (),
74.BR putchar_unlocked ():
f83d1cca 75.RS 4
0f200f07
MK
76_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE ||
77_BSD_SOURCE || _SVID_SOURCE
f83d1cca 78.RE
0f200f07
MK
79.sp
80.BR clearerr_unlocked (),
81.BR feof_unlocked (),
82.BR ferror_unlocked (),
83.BR fileno_unlocked (),
84.BR fflush_unlocked (),
85.BR fgetc_unlocked (),
86.BR fputc_unlocked (),
87.BR fread_unlocked (),
88.BR fwrite_unlocked ():
f83d1cca 89.RS 4
0f200f07 90_BSD_SOURCE || _SVID_SOURCE
f83d1cca 91.RE
0f200f07
MK
92.sp
93.BR fgets_unlocked (),
94.BR fputs_unlocked (),
95.BR getwc_unlocked (),
96.BR getwchar_unlocked (),
97.BR fgetwc_unlocked (),
98.BR fputwc_unlocked (),
99.BR putwchar_unlocked (),
100.BR fgetws_unlocked (),
101.BR fputws_unlocked ():
f83d1cca 102.RS 4
0f200f07 103_GNU_SOURCE
f83d1cca 104.RE
0f200f07 105.ad b
fea681da 106.SH DESCRIPTION
d9bfdb9c 107Each of these functions has the same behavior as its counterpart
84c517a4 108without the "_unlocked" suffix, except that they do not use locking
fea681da
MK
109(they do not set locks themselves, and do not test for the presence
110of locks set by others) and hence are thread-unsafe.
111See
112.BR flockfile (3).
4aefbee8
ZL
113.SH ATTRIBUTES
114For an explanation of the terms used in this section, see
115.BR attributes (7).
116.TS
117allbox;
118lbw20 lb lb
119l l l.
120Interface Attribute Value
121T{
122.BR getc_unlocked (),
123.BR putc_unlocked (),
124.BR clearerr_unlocked (),
125.BR fflush_unlocked (),
126.BR fgetc_unlocked (),
127.BR fputc_unlocked (),
128.BR fread_unlocked (),
129.BR fwrite_unlocked (),
130.BR fgets_unlocked (),
131.BR fputs_unlocked (),
132.BR getwc_unlocked (),
133.BR fgetwc_unlocked (),
134.BR fputwc_unlocked (),
135.BR putwc_unlocked (),
136.BR fgetws_unlocked (),
137.BR fputws_unlocked ()
138T} Thread safety MT-Safe race:stream
139T{
140.BR getchar_unlocked (),
141.BR getwchar_unlocked ()
142T} Thread safety MT-Unsafe race:stdin
143T{
144.BR putchar_unlocked (),
145.BR putwchar_unlocked ()
146T} Thread safety MT-Unsafe race:stdout
147T{
148.BR feof_unlocked (),
149.BR ferror_unlocked (),
150.BR fileno_unlocked ()
151T} Thread safety MT-Safe
152.TE
153
47297adb 154.SH CONFORMING TO
d9c1ae64
MK
155The four functions
156.BR getc_unlocked (),
157.BR getchar_unlocked (),
158.BR putc_unlocked (),
159.BR putchar_unlocked ()
2540a1f9 160are in POSIX.1-2001 and POSIX.1-2008.
68e1685c 161
c8f2dd47 162The nonstandard
4d52e8f8 163.BR *_unlocked ()
008f1ecc 164variants occur on a few UNIX systems, and are available in recent glibc.
68e1685c 165.\" E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and
fea681da 166.\" moved to a compatibility library.
68e1685c 167.\" Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked,
fea681da
MK
168.\" feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
169.\" fgetwc_unlocked, fgetws_unlocked, fileno_unlocked, fputs_unlocked,
170.\" fputwc_unlocked, fputws_unlocked, fread_unlocked, fseek_unlocked,
171.\" ftell_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
172.\" getw_unlocked, getwc_unlocked, getwchar_unlocked, putc_unlocked,
173.\" putchar_unlocked, puts_unlocked, putws_unlocked, putw_unlocked,
174.\" putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked,
175.\" ungetc_unlocked, ungetwc_unlocked.
176They should probably not be used.
47297adb 177.SH SEE ALSO
50e5322c 178.BR flockfile (3),
0a4f8b7b 179.BR stdio (3)