UNLOCKED_STDIO

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - ロックを行わずに標準入出力を行う関数群  

書式

#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():

/* Since glibc 2.24: */ _POSIX_C_SOURCE >= 199309L
    || /* Glibc versions <= 2.23: */ _POSIX_C_SOURCE
    || /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

clearerr_unlocked(), feof_unlocked(), ferror_unlocked(), fileno_unlocked(), fflush_unlocked(), fgetc_unlocked(), fputc_unlocked(), fread_unlocked(), fwrite_unlocked():

/* Glibc since 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

fgets_unlocked(), fputs_unlocked(), getwc_unlocked(), getwchar_unlocked(), fgetwc_unlocked(), fputwc_unlocked(), putwchar_unlocked(), fgetws_unlocked(), fputws_unlocked():

_GNU_SOURCE
 

説明

これらの関数は、末尾に "_unlocked" がついていない関数と同じ動作をするが、 ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック をセットせず、他の関数によってロックがセットされているかどうかのチェックも 行わない) それゆえ、スレッド(thread)で安全に使用することができない。 flockfile(3) を参照のこと。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
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() の 4 つの関数は POSIX.1-2001 と POSIX.1-2008 に規定されている。

非標準の *_unlocked() の仲間は 2、3 の UNIX システムで定義されており、 最近の glibc では使用可能であるが、 これらの関数は使わない方がよいだろう。  

関連項目

flockfile(3), stdio(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

unlocked   wchar   ロック   size   Thread   safety   versions   race   getc   getchar   putc   putchar   セット   入出力   stdio   clearerr   feof   ferror   fileno   fflush   fgetc   fputc   fread   fwrite   fgets

Linux マニュアル 一覧

関連するコマンド・関数

clearerr_unlocked.3   feof_unlocked.3   fflush_unlocked.3   fgetc_unlocked.3   fgets_unlocked.3   fgetwc_unlocked.3
 

Index

名前
書式
説明
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:34 GMT, October 11, 2026