NAME |LIBRARY |SYNOPSIS |DESCRIPTION |ATTRIBUTES |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
unlocked_stdio(3) Library Functions Manualunlocked_stdio(3)getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - nonlocking stdio functions
Standard C library (libc,-lc)
#include <stdio.h>int getc_unlocked(FILE *stream);int getchar_unlocked(void);int putc_unlocked(intc, FILE *stream);int putchar_unlocked(intc);void clearerr_unlocked(FILE *stream);int feof_unlocked(FILE *stream);int ferror_unlocked(FILE *stream);int fileno_unlocked(FILE *stream);int fflush_unlocked(FILE *_Nullablestream);int fgetc_unlocked(FILE *stream);int fputc_unlocked(intc, FILE *stream);size_t fread_unlocked(size_t size, size_t n;voidptr[restrictsize*n],size_tsize, size_tn,FILE *restrictstream);size_t fwrite_unlocked(size_t size, size_t n;const voidptr[restrictsize*n],size_tsize, size_tn,FILE *restrictstream);char *fgets_unlocked(int n;chars[restrictn], intn, FILE *restrictstream);int fputs_unlocked(const char *restricts, FILE *restrictstream);#include <wchar.h>wint_t getwc_unlocked(FILE *stream);wint_t getwchar_unlocked(void);wint_t fgetwc_unlocked(FILE *stream);wint_t fputwc_unlocked(wchar_twc, FILE *stream);wint_t putwc_unlocked(wchar_twc, FILE *stream);wint_t putwchar_unlocked(wchar_twc);wchar_t *fgetws_unlocked(int n;wchar_tws[restrictn], intn,FILE *restrictstream);int fputws_unlocked(const wchar_t *restrictws,FILE *restrictstream); Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):getc_unlocked(),getchar_unlocked(),putc_unlocked(),putchar_unlocked(): /* glibc >= 2.24: */ _POSIX_C_SOURCE >= 199309L || /* glibc <= 2.23: */ _POSIX_C_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCEclearerr_unlocked(),feof_unlocked(),ferror_unlocked(),fileno_unlocked(),fflush_unlocked(),fgetc_unlocked(),fputc_unlocked(),fread_unlocked(),fwrite_unlocked(): /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCEfgets_unlocked(),fputs_unlocked(),getwc_unlocked(),getwchar_unlocked(),fgetwc_unlocked(),fputwc_unlocked(),putwchar_unlocked(),fgetws_unlocked(),fputws_unlocked(): _GNU_SOURCE
Each of these functions has the same behavior as its counterpart without the "_unlocked" suffix, except that they do not use locking (they do not set locks themselves, and do not test for the presence of locks set by others) and hence are thread-unsafe. Seeflockfile(3).
For an explanation of the terms used in this section, seeattributes(7). ┌──────────────────────┬───────────────┬─────────────────────────┐ │Interface│Attribute│Value│ ├──────────────────────┼───────────────┼─────────────────────────┤ │getc_unlocked(), │ Thread safety │ MT-Safe race:stream │ │putc_unlocked(), │ │ │ │clearerr_unlocked(), │ │ │ │fflush_unlocked(), │ │ │ │fgetc_unlocked(), │ │ │ │fputc_unlocked(), │ │ │ │fread_unlocked(), │ │ │ │fwrite_unlocked(), │ │ │ │fgets_unlocked(), │ │ │ │fputs_unlocked(), │ │ │ │getwc_unlocked(), │ │ │ │fgetwc_unlocked(), │ │ │ │fputwc_unlocked(), │ │ │ │putwc_unlocked(), │ │ │ │fgetws_unlocked(), │ │ │ │fputws_unlocked() │ │ │ ├──────────────────────┼───────────────┼─────────────────────────┤ │getchar_unlocked(), │ Thread safety │ MT-Unsafe race:stdin │ │getwchar_unlocked() │ │ │ ├──────────────────────┼───────────────┼─────────────────────────┤ │putchar_unlocked(), │ Thread safety │ MT-Unsafe race:stdout │ │putwchar_unlocked() │ │ │ ├──────────────────────┼───────────────┼─────────────────────────┤ │feof_unlocked(), │ Thread safety │ MT-Safe │ │ferror_unlocked(), │ │ │ │fileno_unlocked() │ │ │ └──────────────────────┴───────────────┴─────────────────────────┘
getc_unlocked()getchar_unlocked()putc_unlocked()putchar_unlocked() POSIX.1-2008. Others: None.
getc_unlocked()getchar_unlocked()putc_unlocked()putchar_unlocked() POSIX.1-2001.
flockfile(3),stdio(3)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-06-28unlocked_stdio(3)Pages that refer to this page:ferror(3), fflush(3), fgetc(3), fgetwc(3), fgetws(3), fileno(3), flockfile(3), fputwc(3), fputws(3), fread(3), gets(3), getwchar(3), puts(3), putwchar(3), stdio(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |