UNLOCKED_STDIO - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
getc_unlocked,getchar_unlocked,putc_unlocked,putchar_unlocked-非锁定stdio函数
语法
#include <stdio.h>
int getc_unlocked(FILE *stream);
int getchar_unlocked(void);
int putc_unlocked(int c, FILE *stream);
int putchar_unlocked(int c);
void clearerr_unlocked(FILE *stream);
int feof_unlocked(FILE *stream);
int ferror_unlocked(FILE *stream);
int fileno_unlocked(FILE *stream);
int fflush_unlocked(FILE *stream);
int fgetc_unlocked(FILE *stream);
int fputc_unlocked(int c, FILE *stream);
size_t fread_unlocked(void *ptr, size_t size, size_t n,
FILE *stream);
size_t fwrite_unlocked(const void *ptr, size_t size, size_t n,
FILE *stream);
char *fgets_unlocked(char *s, int n, FILE *stream);
int fputs_unlocked(const char *s, FILE *stream);
#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_t wc, FILE *stream);
wint_t putwc_unlocked(wchar_t wc, FILE *stream);
wint_t putwchar_unlocked(wchar_t wc);
wchar_t *fgetws_unlocked(wchar_t *ws, int n, FILE *stream);
int fputws_unlocked(const wchar_t *ws, FILE *stream);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
getc_unlocked(),getchar_unlocked(),putc_unlocked(),putchar_unlocked():
- / *自glibc 2.24起:* / _POSIX_C_SOURCE>= 199309L || / * Glibc版本
clearerr_unlocked(),feof_unlocked(),ferror_unlocked(),fileno_unlocked(),fflush_unlocked(),fgetc_unlocked(),fputc_unlocked(),fread_unlocked(),fwrite_unlocked():
- / *自2.19开始的Glibc:* / _DEFAULT_SOURCE || / * Glibc版本
fgets_unlocked(),fputs_unlocked(),getwc_unlocked(),getwchar_unlocked(),fgetwc_unlocked(),fputwc_unlocked(),putwchar_unlocked(),fgetws_unlocked(),fputws_unlocked():
- _GNU_SOURCE
说明
这些函数中的每个函数均与不带" _unlocked"后缀的函数具有相同的行为,除了它们不使用锁定(它们不设置锁本身,并且不测试其他人设置的锁的存在),因此它们是线程-不安全参见flockfile(3)。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
| Interface | Attribute | Value |
| getc_unlocked(),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() | Thread safety | MT-Safe race:stream |
| getchar_unlocked(),getwchar_unlocked() | Thread safety | MT-Unsafe race:stdin |
| putchar_unlocked(),putwchar_unlocked() | Thread safety | MT-Unsafe race:stdout |
| feof_unlocked(),ferror_unlocked(),fileno_unlocked() | Thread safety | MT-Safe |
遵循规范
四个函数getc_unlocked(),getchar_unlocked(),putc_unlocked(),putchar_unlocked()在POSIX.1-2001和POSIX.1-2008中。
非标准的* _unlocked()变体出现在一些UNIX系统上,并且在最近的glibc中可用。可能不应该使用它们。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。

