2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\"
|
2008-08-29 15:50:13 +00:00
|
|
|
.TH UNLOCKED_STDIO 3 2008-08-29 "" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
2007-05-21 22:08:15 +00:00
|
|
|
getc_unlocked, getchar_unlocked, putc_unlocked,
|
accept.2, access.2, acct.2, clock_nanosleep.2, mbind.2, mincore.2, remap_file_pages.2, sched_setscheduler.2, set_mempolicy.2, splice.2, stat.2, syslog.2, timer_create.2, timerfd_create.2, truncate.2, fenv.3, ferror.3, fflush.3, fgetwc.3, fgetws.3, flockfile.3, fputwc.3, fputws.3, fread.3, getopt.3, gets.3, getwchar.3, glob.3, iconv.3, longjmp.3, pow.3, printf.3, puts.3, putwchar.3, regex.3, rpc.3, scanf.3, setjmp.3, termios.3, unlocked_stdio.3, wcswidth.3, hd.4, rtc.4, st.4, core.5, dir_colors.5, elf.5, proc.5, arp.7, ascii.7, boot.7, bootparam.7, charsets.7, futex.7, ip.7, iso_8859-11.7, man-pages.7, man.7, mdoc.samples.7, path_resolution.7, pipe.7, posixoptions.7, unicode.7, unix.7, uri.7, utf-8.7, ld.so.8: s/non-/non/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:20:12 +00:00
|
|
|
putchar_unlocked \- nonlocking stdio functions
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <stdio.h>
|
|
|
|
.sp
|
|
|
|
.BI "int getc_unlocked(FILE *" stream );
|
2007-09-20 16:26:31 +00:00
|
|
|
.B "int getchar_unlocked(void);"
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int putc_unlocked(int " c ", FILE *" stream );
|
|
|
|
.BI "int putchar_unlocked(int " c );
|
|
|
|
.sp
|
|
|
|
.BI "void clearerr_unlocked(FILE *" stream );
|
|
|
|
.BI "int feof_unlocked(FILE *" stream );
|
|
|
|
.BI "int ferror_unlocked(FILE *" stream );
|
|
|
|
.BI "int fileno_unlocked(FILE *" stream );
|
|
|
|
.BI "int fflush_unlocked(FILE *" stream );
|
|
|
|
.BI "int fgetc_unlocked(FILE *" stream );
|
|
|
|
.BI "int fputc_unlocked(int " c ", FILE *" stream );
|
|
|
|
.BI "size_t fread_unlocked(void *" ptr ", size_t " size ", size_t " n ,
|
2007-12-23 08:20:39 +00:00
|
|
|
.BI " FILE *" stream );
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "size_t fwrite_unlocked(const void *" ptr ", size_t " size ", size_t " n ,
|
2007-12-23 08:20:39 +00:00
|
|
|
.BI " FILE *" stream );
|
2004-11-03 13:51:07 +00:00
|
|
|
.sp
|
|
|
|
.BI "char *fgets_unlocked(char *" s ", int " n ", FILE *" stream );
|
|
|
|
.BI "int fputs_unlocked(const char *" s ", FILE *" stream );
|
|
|
|
.sp
|
|
|
|
.B #include <wchar.h>
|
|
|
|
.sp
|
|
|
|
.BI "wint_t getwc_unlocked(FILE *" stream );
|
2007-09-20 16:26:31 +00:00
|
|
|
.B "wint_t getwchar_unlocked(void);"
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "wint_t fgetwc_unlocked(FILE *" stream );
|
|
|
|
.BI "wint_t fputwc_unlocked(wchar_t " wc ", FILE *" stream );
|
|
|
|
.BI "wint_t putwc_unlocked(wchar_t " wc ", FILE *" stream );
|
|
|
|
.BI "wint_t putwchar_unlocked(wchar_t " wc );
|
|
|
|
.BI "wchar_t *fgetws_unlocked(wchar_t *" ws ", int " n ", FILE *" stream );
|
|
|
|
.BI "int fputws_unlocked(const wchar_t *" ws ", FILE *" stream );
|
|
|
|
.fi
|
2008-08-29 15:50:13 +00:00
|
|
|
.sp
|
|
|
|
.in -4n
|
|
|
|
Feature Test Macro Requirements for glibc (see
|
|
|
|
.BR feature_test_macros (7)):
|
|
|
|
.ad l
|
|
|
|
.in
|
|
|
|
.sp
|
|
|
|
.BR getc_unlocked (),
|
|
|
|
.BR getchar_unlocked (),
|
|
|
|
.BR putc_unlocked (),
|
|
|
|
.BR putchar_unlocked ():
|
2010-09-19 05:44:07 +00:00
|
|
|
.RS 4
|
2008-08-29 15:50:13 +00:00
|
|
|
_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE ||
|
|
|
|
_BSD_SOURCE || _SVID_SOURCE
|
2010-09-19 05:44:07 +00:00
|
|
|
.RE
|
2008-08-29 15:50:13 +00:00
|
|
|
.sp
|
|
|
|
.BR clearerr_unlocked (),
|
|
|
|
.BR feof_unlocked (),
|
|
|
|
.BR ferror_unlocked (),
|
|
|
|
.BR fileno_unlocked (),
|
|
|
|
.BR fflush_unlocked (),
|
|
|
|
.BR fgetc_unlocked (),
|
|
|
|
.BR fputc_unlocked (),
|
|
|
|
.BR fread_unlocked (),
|
|
|
|
.BR fwrite_unlocked ():
|
2010-09-19 05:44:07 +00:00
|
|
|
.RS 4
|
2008-08-29 15:50:13 +00:00
|
|
|
_BSD_SOURCE || _SVID_SOURCE
|
2010-09-19 05:44:07 +00:00
|
|
|
.RE
|
2008-08-29 15:50:13 +00:00
|
|
|
.sp
|
|
|
|
.BR fgets_unlocked (),
|
|
|
|
.BR fputs_unlocked (),
|
|
|
|
.BR getwc_unlocked (),
|
|
|
|
.BR getwchar_unlocked (),
|
|
|
|
.BR fgetwc_unlocked (),
|
|
|
|
.BR fputwc_unlocked (),
|
|
|
|
.BR putwchar_unlocked (),
|
|
|
|
.BR fgetws_unlocked (),
|
|
|
|
.BR fputws_unlocked ():
|
2010-09-19 05:44:07 +00:00
|
|
|
.RS 4
|
2008-08-29 15:50:13 +00:00
|
|
|
_GNU_SOURCE
|
2010-09-19 05:44:07 +00:00
|
|
|
.RE
|
2008-08-29 15:50:13 +00:00
|
|
|
.ad b
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH DESCRIPTION
|
2007-06-08 09:56:56 +00:00
|
|
|
Each of these functions has the same behavior as its counterpart
|
2008-06-05 20:14:50 +00:00
|
|
|
without the "_unlocked" suffix, except that they do not use locking
|
2004-11-03 13:51:07 +00:00
|
|
|
(they do not set locks themselves, and do not test for the presence
|
|
|
|
of locks set by others) and hence are thread-unsafe.
|
|
|
|
See
|
|
|
|
.BR flockfile (3).
|
|
|
|
.SH "CONFORMING TO"
|
2007-05-12 13:12:02 +00:00
|
|
|
The four functions
|
|
|
|
.BR getc_unlocked (),
|
|
|
|
.BR getchar_unlocked (),
|
|
|
|
.BR putc_unlocked (),
|
|
|
|
.BR putchar_unlocked ()
|
|
|
|
are in POSIX.1-2001.
|
2006-08-03 13:57:30 +00:00
|
|
|
|
accept.2, execve.2, futimesat.2, getresuid.2, getrlimit.2, madvise.2, mq_getsetattr.2, msgctl.2, nice.2, open.2, poll.2, setresuid.2, shmctl.2, sigaction.2, times.2, utimensat.2, __setfpucw.3, atoi.3, endian.3, err.3, euidaccess.3, fenv.3, fopencookie.3, fpurge.3, getgrouplist.3, getutmp.3, j0.3, lgamma.3, netlink.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_cleanup_push_defer_np.3, pthread_getattr_np.3, pthread_kill_other_threads_np.3, pthread_setaffinity_np.3, pthread_tryjoin_np.3, pthread_yield.3, random_r.3, readdir.3, rtnetlink.3, scanf.3, setenv.3, significand.3, sigsetops.3, strerror.3, strstr.3, sysv_signal.3, termios.3, timegm.3, unlocked_stdio.3, y0.3, locale.5, bootparam.7, feature_test_macros.7, ip.7, locale.7, pthreads.7, rtld-audit.7, nscd.8: Global fix: s/non-standard/nonstandard/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 16:37:52 +00:00
|
|
|
The nonstandard
|
2005-10-19 14:54:31 +00:00
|
|
|
.BR *_unlocked ()
|
intro.1, time.1, accept.2, bind.2, connect.2, execve.2, flock.2, getdents.2, getpriority.2, getuid.2, intro.2, ioctl.2, mincore.2, mknod.2, personality.2, ptrace.2, read.2, recv.2, select_tut.2, send.2, sendfile.2, shmctl.2, sigaction.2, signal.2, stat.2, times.2, truncate.2, umask.2, wait.2, MB_CUR_MAX.3, MB_LEN_MAX.3, argz_add.3, btowc.3, clearenv.3, clock.3, cmsg.3, end.3, endian.3, errno.3, exit.3, fgetwc.3, fgetws.3, fopen.3, fputwc.3, fputws.3, fseek.3, fwide.3, getfsent.3, getgrnam.3, gethostid.3, getipnodebyname.3, getmntent.3, getpwnam.3, getwchar.3, grantpt.3, iconv.3, iconv_close.3, iconv_open.3, insque.3, intro.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, malloc.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, mkstemp.3, mktemp.3, nl_langinfo.3, openpty.3, posix_openpt.3, printf.3, ptsname.3, putwchar.3, qecvt.3, rcmd.3, readdir.3, rexec.3, rpc.3, setnetgrent.3, shm_open.3, sigpause.3, stdin.3, stpcpy.3, strftime.3, strptime.3, syslog.3, towctrans.3, towlower.3, towupper.3, ttyslot.3, ungetwc.3, unlocked_stdio.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wprintf.3, console_ioctl.4, pts.4, elf.5, filesystems.5, hosts.5, proc.5, ttytype.5, boot.7, capabilities.7, credentials.7, epoll.7, glob.7, koi8-r.7, path_resolution.7, pty.7, signal.7, suffixes.7, time.7, unicode.7, unix.7, uri.7, utf-8.7: global fix: s/Unix/UNIX/
The man pages were rather inconsistent in the use of "Unix"
versus "UNIX". Let's go with the trademark usage.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-10-12 04:45:38 +00:00
|
|
|
variants occur on a few UNIX systems, and are available in recent glibc.
|
2006-08-03 13:57:30 +00:00
|
|
|
.\" E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" moved to a compatibility library.
|
2006-08-03 13:57:30 +00:00
|
|
|
.\" Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked,
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
|
|
|
|
.\" fgetwc_unlocked, fgetws_unlocked, fileno_unlocked, fputs_unlocked,
|
|
|
|
.\" fputwc_unlocked, fputws_unlocked, fread_unlocked, fseek_unlocked,
|
|
|
|
.\" ftell_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
|
|
|
|
.\" getw_unlocked, getwc_unlocked, getwchar_unlocked, putc_unlocked,
|
|
|
|
.\" putchar_unlocked, puts_unlocked, putws_unlocked, putw_unlocked,
|
|
|
|
.\" putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked,
|
|
|
|
.\" ungetc_unlocked, ungetwc_unlocked.
|
|
|
|
They should probably not be used.
|
|
|
|
.SH "SEE ALSO"
|
2006-04-21 06:49:34 +00:00
|
|
|
.BR flockfile (3),
|
getresuid.2, intro.2, mremap.2, open.2, poll.2, posix_fadvise.2, pread.2, remap_file_pages.2, setresuid.2, signal.2, splice.2, sync_file_range.2, tee.2, vmsplice.2, INFINITY.3, asprintf.3, assert_perror.3, basename.3, bsd_signal.3, canonicalize_file_name.3, clog10.3, crypt.3, dl_iterate_phdr.3, dlopen.3, dprintf.3, encrypt.3, exp10.3, fcloseall.3, fenv.3, ffs.3, fmemopen.3, fopencookie.3, ftw.3, getdate.3, getline.3, getloadavg.3, getopt.3, getsubopt.3, getutent.3, grantpt.3, hsearch.3, intro.3, lseek64.3, memmem.3, mempcpy.3, mq_receive.3, mq_send.3, posix_fallocate.3, pow10.3, program_invocation_name.3, ptsname.3, putgrent.3, readdir.3, sigset.3, sincos.3, stpcpy.3, stpncpy.3, strchr.3, strfry.3, strnlen.3, strptime.3, strsignal.3, strstr.3, strverscmp.3, swab.3, sysv_signal.3, tsearch.3, unlocked_stdio.3, unlockpt.3, wcpcpy.3, wcpncpy.3, wcsdup.3, wcwidth.3: SEE ALSO: Remove redundant reference to feature_test_macros(7)
Reported-by: Florian Lehmann <flo.lehmann@googlemail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-10-31 05:05:22 +00:00
|
|
|
.BR stdio (3)
|