.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
+.\" and Copyright 2014 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH TOUPPER 3 1993\-04\-04 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1997 Ueyama Rui and HIROFUMI Nishizuka
+.\" all rights reserved.
+.\" Translated Fri Aug 29 19:47:32 JST 1997
+.\" by Ueyama Rui <rui@campus.or.jp>
+.\" by HIROFUMI Nishizuka <nishi@rpts.cl.nec.co.jp>
+.\" Translated Sun Mar 12 21:42:31 JST 2000
+.\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
+.\"
+.TH TOUPPER 3 2014\-03\-18 GNU "Linux Programmer's Manual"
.SH 名前
-toupper, tolower \- 小文字を大文字にする。または大文字を小文字にする。
+toupper, tolower, toupper_l, tolower_l \- 小文字を大文字にする。または大文字を小文字にする。
.SH 書式
.nf
\fB#include <ctype.h>\fP
\fBint toupper(int \fP\fIc\fP\fB);\fP
.br
\fBint tolower(int \fP\fIc\fP\fB);\fP
+
+\fBint toupper_l(int \fP\fIc\fP\fB, locale_t \fP\fIlocale\fP\fB);\fP
+\fBint tolower_l(int \fP\fIc\fP\fB, locale_t \fP\fIlocale\fP\fB);\fP
.fi
+.sp
+.in -4n
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
+.in
+.sp
+\fBtoupper_l\fP(), \fBtolower_l\fP():
+.PD 0
+.RS 4
+.TP
+glibc 2.10 以降:
+_XOPEN_SOURCE\ >=\ 700
+.TP
+glibc 2.10 より前:
+_GNU_SOURCE
+.RE
+.PD
.SH 説明
-\fBtoupper\fP() は、 \fIc\fP が大文字にできる文字であるならば大文字に変換する。
-.PP
-\fBtolower\fP() は \fIc\fP が小文字にできる文字であるならば小文字に変換する。
+これらの関数は、小文字を大文字に、もしくは大文字を小文字に変換する。
+
+\fIc\fP が小文字の場合、現在のロケールで大文字表現が存在する場合、 \fBtoupper\fP()
+は対応する大文字を返す。大文字表現が存在しない場合、\fIc\fP を返す。 \fBtoupper_l\fP() 関数は同じ動作をするが、ロケールハンドル
+\fIlocale\fP が参照するロケールを使って変換を行う。
+
+\fIc\fP が大文字の場合、現在のロケールで小文字表現が存在する場合、 \fBtolower\fP()
+は対応する小文字を返す。小文字表現が存在しない場合、\fIc\fP を返す。 \fBtolower_l\fP() 関数は同じ動作をするが、ロケールハンドル
+\fIlocale\fP が参照するロケールを使って変換を行う。
.PP
-もし \fIc\fP が \fIunsigned char\fP の値でないか \fBEOF\fP ならば、これらの関数の動作は未定義である。
+もし \fIc\fP が \fIunsigned char\fP 値でも \fBEOF\fP でもない場合、これらの関数の動作は未定義である。
+
+\fIlocale\fP が特別なロケールオブジェクト \fBLC_GLOBAL_LOCALE\fP の場合 (\fBduplocale\fP(3) 参照)、または
+\fIlocale\fP が有効なロケールオブジェクトハンドルでない場合、 \fBtoupper_l\fP() と \fBtolower_l\fP()
+の動作は未定義である。
.SH 返り値
変換ができれば変換後の文字を返す。できなければ変換前の \fIc\fP を返す。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+.\" FIXME . Add toupper_l() and tolower_l()
+関数 \fBtoupper\fP() と \fBtolower\fP() は、例外付きのスレッドセーフである。実行中に \fBsetlocale\fP(3)
+を呼び出してロケールを変更しない限り、マルチスレッドアプリケーションで安全に使用することができる。
.SH 準拠
-C89, C99, 4.3BSD.
-.SH バグ
-なにが大文字でなにが小文字なのかということの詳細は、現在のロケールに 依存している。たとえば、デフォルトの \fB"C"\fP
+\fBtoupper\fP(), \fBtolower\fP(): C89, C99, 4.3BSD, POSIX.1\-2001, POSIX.1\-2008.
+
+\fBtoupper_l\fP(), \fBtolower_l\fP(): POSIX.1\-2008.
+.SH 注意
+なにが大文字でなにが小文字なのかということの詳細は、ロケールに依存している。たとえば、デフォルトの \fB"C"\fP
ロケールではウムラウトを認識しないため、それらの文字は変換できない。
.PP
+.\" FIXME One day the statement about "sharp s" needs to be reworked,
+.\" since there is nowadays a capital "sharp s" that has a codepoint
+.\" in Unicode 5.0; see https://en.wikipedia.org/wiki/Capital_%E1%BA%9E
いくつかの非英語ロケールでは、対応する大文字を持たない小文字が存在する。 ドイツ語のエスツェットが一つの例である。
.SH 関連項目
-\fBisalpha\fP(3), \fBsetlocale\fP(3), \fBtowlower\fP(3), \fBtowupper\fP(3), \fBlocale\fP(7)
+\fBisalpha\fP(3), \fBnewlocale\fP(3), \fBsetlocale\fP(3), \fBuselocale\fP(3),
+\fBtowlower\fP(3), \fBtowupper\fP(3), \fBlocale\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。