catch up with 4.4-20011007-STABLE of man3 entries

Submitted by:	Yuko Sasaki <yuko@veltec.co.jp> and
		jpman project <man-jp@jp.FreeBSD.org>
This commit is contained in:
Kazuo Horikawa 2001-12-29 18:20:02 +00:00
parent cb4d61ee2f
commit 80131ed3b0
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=11533
143 changed files with 2975 additions and 2428 deletions

View file

@ -17,7 +17,7 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %FreeBSD: src/lib/libutil/_secure_path.3,v 1.7.2.1 2000/04/22 16:36:01 phantom Exp %
.\" %FreeBSD: src/lib/libutil/_secure_path.3,v 1.7.2.2 2001/08/17 15:43:07 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1997

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)acos.3 5.1 (Berkeley) 5/2/91
.\" %FreeBSD: src/lib/msun/man/acos.3,v 1.6.2.2 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/acos.3,v 1.6.2.3 2001/07/22 12:07:20 dd Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1991

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)acosh.3 5.2 (Berkeley) 5/6/91
.\" %FreeBSD: src/lib/msun/man/acosh.3,v 1.6 1999/08/28 00:06:18 peter Exp %
.\" %FreeBSD: src/lib/msun/man/acosh.3,v 1.6.2.2 2001/08/17 15:43:08 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 6, 1991
.Dt ACOSH 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm acosh ,
.Nm acoshf
@ -83,5 +83,3 @@
関数は、
.Bx 4.3
で登場しました。

View file

@ -27,7 +27,7 @@
.\" SUCH DAMAGE.
.\"
.\" $ANA: addr2ascii.3,v 1.1 1996/06/13 18:41:46 wollman Exp $
.\" %FreeBSD: src/lib/libc/net/addr2ascii.3,v 1.7.2.2 2000/05/06 13:34:10 phantom Exp %
.\" %FreeBSD: src/lib/libc/net/addr2ascii.3,v 1.7.2.4 2001/08/17 15:42:38 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 13, 1996
@ -100,13 +100,16 @@
.Bl -tag -width AF_INETxxxx -compact
.It Dv AF_INET
.Li struct in_addr
.Pq in Aq Pa netinet/in.h
(in
.Aq Pa netinet/in.h )
.It Dv AF_LINK
.Li struct sockaddr_dl
.Pq in Aq Pa net/if_dl.h
(in
.Aq Pa net/if_dl.h )
.\" .It Dv AF_INET6
.\" .Li struct in6_addr
.\" .Pq in Aq Pa netinet6/in6.h
.\" (in
.\" .Aq Pa netinet6/in6.h )
.El
.Sh 戻り値
.Fn addr2ascii
@ -190,7 +193,7 @@ inet_aton(const char *ascii, struct in_addr *addr)
.Tn INRIA
.Tn IPv6
の実装に最初に現れました。
の実装により、はじめて登場しました。
.Sh 作者
コードとドキュメントは MIT Laboratory for Computer Science の
.An Garrett A. Wollman

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)alarm.3 8.2 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/gen/alarm.3,v 1.9.2.2 2001/03/06 16:45:53 ru Exp %
.\" %FreeBSD: src/lib/libc/gen/alarm.3,v 1.9.2.4 2001/08/17 15:42:32 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 19, 1994
.Dt ALARM 3
.Os BSD 4
.Os
.Sh 名称
.Nm alarm
.Nd シグナルタイマアラームを設定する
@ -47,7 +47,9 @@
.Fn alarm "unsigned int seconds"
.Sh 解説
.Bf -symbolic
このインタフェースは setitimer(2) によって旧式のものとなっています。
このインタフェースは
.Xr setitimer 2
によって旧式のものとなっています。
.Ef
.Pp
.Fn alarm

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)alloca.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdlib/alloca.3,v 1.4.2.1 2000/04/22 17:06:23 phantom Exp %
.\" %FreeBSD: src/lib/libc/stdlib/alloca.3,v 1.4.2.3 2001/08/17 15:42:42 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt ALLOCA 3
.Os BSD 4
.Os
.Sh 名称
.Nm alloca
.Nd メモリ割り当て関数

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)asin.3 5.1 (Berkeley) 5/2/91
.\" %FreeBSD: src/lib/msun/man/asin.3,v 1.6.2.1 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/asin.3,v 1.6.2.3 2001/08/17 15:43:08 ru Exp %
.\"
.\" WORD: range ¶è´Ö[asin.3]
.\" WORD: principal ¼çÃÍ[asin.3]

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)asinh.3 6.4 (Berkeley) 5/6/91
.\" %FreeBSD: src/lib/msun/man/asinh.3,v 1.6 1999/08/28 00:06:18 peter Exp %
.\" %FreeBSD: src/lib/msun/man/asinh.3,v 1.6.2.2 2001/08/17 15:43:08 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 6, 1991
.Dt ASINH 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm asinh ,
.Nm asinhf
@ -73,5 +73,3 @@
関数は、
.Bx 4.3
で登場しました。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)atan.3 5.1 (Berkeley) 5/2/91
.\" %FreeBSD: src/lib/msun/man/atan.3,v 1.6.2.1 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/atan.3,v 1.6.2.2 2001/07/22 12:07:20 dd Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1991

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)atanh.3 5.2 (Berkeley) 5/6/91
.\" %FreeBSD: src/lib/msun/man/atanh.3,v 1.6 1999/08/28 00:06:20 peter Exp %
.\" %FreeBSD: src/lib/msun/man/atanh.3,v 1.6.2.2 2001/08/17 15:43:08 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 6, 1991
.Dt ATANH 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm atanh ,
.Nm atanhf
@ -53,6 +53,9 @@
関数は、実数の引数
.Ar x
の逆双曲正接を計算します。
丸めによる誤差の議論は、
.Xr math 3
を参照してください。
.Sh 戻り値
.Fn atanh
および
@ -80,4 +83,3 @@
関数は、
.Bx 4.3
で登場しました。

View file

@ -32,12 +32,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)bcmp.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/bcmp.3,v 1.4.2.1 2000/04/22 17:06:35 phantom Exp %
.\" %FreeBSD: src/lib/libc/string/bcmp.3,v 1.4.2.3 2001/08/17 15:42:43 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt BCMP 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm bcmp
.Nd バイト文字列を比較する

View file

@ -33,12 +33,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)bcopy.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/bcopy.3,v 1.3.2.1 2000/04/22 17:06:37 phantom Exp %
.\" %FreeBSD: src/lib/libc/string/bcopy.3,v 1.3.2.3 2001/08/17 15:42:43 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt BCOPY 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm bcopy
.Nd バイト文字列をコピーする

View file

@ -34,7 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)bsearch.3 8.3 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/stdlib/bsearch.3,v 1.4.2.2 2001/03/06 16:46:02 ru Exp %
.\" %FreeBSD: src/lib/libc/stdlib/bsearch.3,v 1.4.2.3 2001/07/22 12:06:47 dd Exp %
.\"
.\" $FreeBSD$
.Dd April 19, 1994

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)byteorder.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/byteorder.3,v 1.3.2.1 2000/04/22 17:06:03 phantom Exp %
.\" %FreeBSD: src/lib/libc/net/byteorder.3,v 1.3.2.3 2001/08/17 15:42:38 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt BYTEORDER 3
.Os BSD 4.2
.Os
.Sh ̾¾Î
.Nm htonl ,
.Nm htons ,

View file

@ -33,12 +33,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)bzero.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/bzero.3,v 1.3.2.1 2000/04/22 17:06:37 phantom Exp %
.\" %FreeBSD: src/lib/libc/string/bzero.3,v 1.3.2.3 2001/08/17 15:42:43 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt BZERO 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm bzero
.Nd バイト文字列に 0 を書き込む

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libcalendar/calendar.3,v 1.6.2.2 2001/01/16 12:09:30 ru Exp %
.\" %FreeBSD: src/lib/libcalendar/calendar.3,v 1.6.2.4 2001/08/17 15:42:55 ru Exp %
.\" $FreeBSD$
.\"
.Dd November 29, 1997
@ -202,12 +202,12 @@ int d; /\(** day of month (1 - 31) \(**/
.Xr ncal 1 ,
.Xr strftime 3
.Sh 規格
週番号は ISO 8601: 1988 に準拠しています。
週番号は ISO 8601: 1988 に適合しています。
.Sh 歴史
.Nm calendar
ライブラリは
.Fx 3.0
最初に登場しました。
はじめて登場しました。
.Sh 作者
このマニュアルページとライブラリは、
.An Wolfgang Helbig Aq helbig@FreeBSD.org

View file

@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/nls/catclose.3,v 1.7.2.4 2001/02/12 08:43:29 phantom Exp %
.\" %FreeBSD: src/lib/libc/nls/catclose.3,v 1.7.2.5 2001/07/22 12:06:45 dd Exp %
.\" $FreeBSD$
.Dd May 29, 1994
.Dt CATCLOSE 3
@ -67,5 +67,3 @@
関数は、
.St -xpg4
に適合しています。

View file

@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/nls/catgets.3,v 1.7.2.2 2000/09/07 16:46:33 ache Exp %
.\" %FreeBSD: src/lib/libc/nls/catgets.3,v 1.7.2.3 2001/07/22 12:06:45 dd Exp %
.\" $FreeBSD$
.Dd May 29, 1994
.Dt CATGETS 3
@ -69,5 +69,3 @@
関数は、
.St -xpg4
に適合しています。

View file

@ -26,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/nls/catopen.3,v 1.9.2.4 2000/12/08 13:49:28 ru Exp %
.\" %FreeBSD: src/lib/libc/nls/catopen.3,v 1.9.2.5 2001/07/22 12:06:45 dd Exp %
.\" $FreeBSD$
.Dd May 29, 1994
.Dt CATOPEN 3
@ -142,5 +142,3 @@
関数は、
.St -xpg4
に適合しています。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)cos.3 5.1 (Berkeley) 5/2/91
.\" %FreeBSD: src/lib/msun/man/cos.3,v 1.7.2.1 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/cos.3,v 1.7.2.2 2001/07/22 12:07:20 dd Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1991
@ -78,5 +78,3 @@
関数は、
.St -isoC
に適合しています。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)cosh.3 5.1 (Berkeley) 5/2/91
.\" %FreeBSD: src/lib/msun/man/cosh.3,v 1.7.2.1 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/cosh.3,v 1.7.2.2 2001/07/22 12:07:20 dd Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1991
@ -81,5 +81,3 @@
関数は、
.St -isoC
に適合しています。

View file

@ -32,12 +32,12 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)ctime.3 8.1 (Berkeley) 6/4/93
.\" %Id: ctime.3,v 1.8 1999/01/03 01:07:41 wollman Exp %
.\"
.\" %FreeBSD: src/lib/libc/stdtime/ctime.3,v 1.11.2.6 2001/10/02 11:36:10 ru Exp %
.\" $FreeBSD$
.\"
.Dd January 2, 1999
.Dt CTIME 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm asctime ,
.Nm asctime_r ,
@ -51,9 +51,11 @@
.Nm mktime ,
.Nm timegm
.Nd バイナリ日付と時刻の値を変換する
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <time.h>
.Vt extern char *tzname[2];
.In time.h
.Vt extern char *tzname[2] ;
.Ft char *
.Fn ctime "const time_t *clock"
.Ft double
@ -98,9 +100,10 @@
.Ev TZ
環境変数 (
.Xr tzset 3
を参照) が指定するように実行されます。
を参照) で指定されたように実行されます。
プロセスが
.Xr tzset 3
がプロセスによってまだ呼び出されていない場合、関数
をまだ呼び出していない場合、関数
.Fn localtime
は、
.Xr tzset 3
@ -112,22 +115,22 @@
.Fa tzname
.Fa tm_isdst
番めのエレメントを、
番めの要素を、
.Fn localtime
の戻り値とともに使用する時間帯短縮形である
.Tn ASCII
ストリングを指すポインタに設定します。
文字列を指すポインタに設定します。
.Pp
関数
.Fn gmtime
は、同じように時刻の値を変換しますが、時間帯の調整はなく、
は、同に時刻の値を変換しますが、時間帯の調整はなく、
構造体 tm を指すポインタを返します (後述)。
.Pp
.Fn ctime
関数は、
.Fn localtime
と同じ方法で現在の時間帯の時刻値を調整し、次の形式の
26 キャラクタのストリングを指すポインタを返します。
26 文字の文字列を指すポインタを返します。
.Bd -literal -offset indent
Thu Nov 24 18:22:48 1986\en\e0
.Ed
@ -140,7 +143,7 @@ Thu Nov 24 18:22:48 1986\en\e0
と同じ機能ですが、呼び出し元が結果を保存するために出力バッファ
.Fa buf
を準備しなければならないという点は異なります。このバッファは少なくとも
26 キャラクタの長さである必要があります。
26 文字の長さである必要があります。
.Fn localtime_r
および
.Fn gmtime_r
@ -166,7 +169,7 @@ Thu Nov 24 18:22:48 1986\en\e0
出力バッファ
.Fa buf
を準備する点は異なります。このバッファの長さは少なくとも
26 キャラクタである必要があります。
26 文字である必要があります。
.Pp
関数
.Fn mktime
@ -176,7 +179,7 @@ Thu Nov 24 18:22:48 1986\en\e0
tm
が指す構造体内の細分化した時間を、
.Xr time 3
関数が返す値と同じエンコードの時刻値に変換します (すなわち、Epoch
関数が返す値と同じエンコードの時刻値に変換します (すなわち、基準時点
.Tn UTC
からの時刻にします)。
.Fn mktime
@ -193,25 +196,35 @@ tm
コンポーネントと
.Fa tm_yday
コンポーネントのオリジナル値は無視され、
他のコンポーネントのオリジナルの値はその通常の範囲に制限されません (
他のコンポーネントのオリジナルの値はその通常の範囲に制限されませんし、
必要な場合は正規化されます。
例えば、10 月 40 日は 11 月 9 日に変換され、
.Fa tm_hour
\-1 が指定されると深夜から 1 時間前を意味し、
.Fa tm_mday
に 0 が指定されると現在の月の直前の日を意味し、
.Fa tm_mon
\-2 が指定されると
.Fa tm_year
の 1 月から 2 ヶ月前を意味します。(
.Fa tm_isdst
が正の値の場合、
正の場合、
.Fn mktime
は、初期的には、指定時間についてサマータイム (たとえば、日光節約時間)
が有効であると推測します。ゼロの場合は、サマータイムが有効でないと
想定します。
は、初期的には、指定時間について夏時間 (たとえば、日光節約時間)
が有効であると推測します。
0 の場合は、夏時間が有効でないと想定します。
.Fa tm_isdst
負の値の場合、
.Fn mktime
関数は、指定の時間についてサマータイムが有効であるかどうか
関数は、指定の時間について夏時間が有効であるかどうか
推測しようとします。
.Fa tm_isdst
メンバと
.Fa tm_gmtoff
メンバは
.Fn timegm
によって強制的にゼロにされます)。
によって強制的に 0 にされます)。
.Pp
処理が正常に完了すると、構造体の
.Fa tm_wday
@ -249,14 +262,14 @@ int tm_mon; /\(**
int tm_year; /\(**\- 1900 \(**/
int tm_wday; /\(** 曜日 (Sunday = 0) \(**/
int tm_yday; /\(** 年内の日 (0 - 365) \(**/
int tm_isdst; /\(** サマータイムは有効か \(**/
int tm_isdst; /\(** 夏時間は有効か \(**/
char \(**tm_zone; /\(** 時間帯名の短縮形 \(**/
long tm_gmtoff; /\(** UTC からのオフセット (秒単位) \(**/
.Ed
.Pp
サマータイムが有効な場合、フィールド
夏時間が有効な場合、フィールド
.Fa tm_isdst
ゼロでなくなります。
0 でなくなります。
.Pp
フィールド
.Fa tm_gmtoff
@ -282,9 +295,9 @@ long tm_gmtoff; /\(** UTC
場合だけ、
.St -isoC
.St -p1003.1
.St -p1003.1-96
に準拠します (
.XX zic 8
.Xr zic 8
を参照)。
.Pp
.Fn asctime_r ,
@ -292,15 +305,17 @@ long tm_gmtoff; /\(** UTC
.Fn gmtime_r ,
.Fn localtime_r
の各関数は
.St -iso9945-1
.St -p1003.1-96
に準拠すると予想されます (ここでも、選択したローカルな時間帯に
閏秒テーブルが含まれていない場合だけです)。
.Pp
.Fn timegm
関数は、いかなる規格によっても指定されていません。
この関数は、上述の標準関数を使用しても、完全にはエミュレート不可能です。
.Sh 歴史
このマニュアルページは、
Arthur Olsen
によって
Berkeley
に寄付された時間パッケージに由来するもので、これは
.An Arthur Olsen
によって Berkeley に寄付された時間パッケージに由来するもので、これは
.Bx 4.3
で現れました。
.Sh バグ

View file

@ -32,14 +32,17 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)div.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdlib/div.3,v 1.3.2.2 2001/03/06 16:46:02 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt DIV 3
.Os
.Sh 名称
.Nm div
.Nd 除算の商と剰余を返す
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft div_t
@ -50,7 +53,8 @@
.Fa num/denom
を計算し、商と剰余を
.Fa div_t
という名前の構造に入れて返します。この構造には
という名前の構造に入れて返します。
この構造には
.Fa quot
.Fa rem
@ -64,5 +68,5 @@
.Sh 規格
.Fn div
関数は
.St -ansiC
準拠しています。
.St -isoC
適合しています。

View file

@ -23,15 +23,17 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: dladdr.3,v 1.2 1998/08/31 16:40:59 wosch Exp %
.\"
.\" %FreeBSD: src/lib/libc/gen/dladdr.3,v 1.3.2.2 2001/08/17 15:42:32 ru Exp %
.\" $FreeBSD$
.\"
.Dd February 5, 1998
.Os FreeBSD
.Os
.Dt DLADDR 3
.Sh 名称
.Nm dladdr
.Nd 指定のアドレスが入った共有オブジェクトを検出する
.Nd 指定のアドレスが含まれる共有オブジェクトを検出する
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <dlfcn.h>
.Ft int
@ -40,22 +42,21 @@
.Nm
は、アドレス
.Fa addr
入った共有オブジェクトについての情報を動的リンカ
照会します。情報は、
含まれる共有オブジェクトに関する情報について動的リンカを
照会します。情報は、
.Fa info
によって指定される構造体内に返されます。構造には
少なくとも次のメンバが入っています。
によって指定される構造体内に返されます。この構造には
少なくとも次のメンバが含まれます。
.Bl -tag -width "XXXconst char *dli_fname"
.It Li "const char *dli_fname"
アドレスが入った共有オブジェクトのパス名。
指定したアドレスが含まれる共有オブジェクトのパス名。
.It Li "void *dli_fbase"
共有オブジェクトが呼び出し元プロセスのアドレス空間にマップ
されるベースアドレス。
.It Li "const char *dli_sname"
値が
.Fa addr
以下の最も近いランタイムシンボルの名前。
可能なときは、シンボル名がC ソースコードで表示されるように返されます。
以下の値を持った最も近いランタイムシンボルの名前。
可能なときは、シンボル名が C ソースコードで表示されるように返されます。
.Pp
適切な値のシンボルが見つからない場合は、このフィールドと
.Va dli_saddr
@ -71,30 +72,30 @@
は動的にリンクされるプログラムでだけ利用できます。
.Sh エラー
.Fa addr
入っているマップされた共有オブジェクトが見つからない場合、
含まれているマップされた共有オブジェクトが見つからない場合、
.Nm
0 を返します。この場合、障害を説明するメッセージが
0 を返します。この場合、失敗理由を詳しく述べたメッセージを
.Fn dlerror
を呼び出すことで取り出ます。
を呼び出すことで取り出すことができます。
.Pp
成功の場合、ゼロでない値が返されます。
成功時には、0 でない値が返されます。
.Sh 関連項目
.Xr rtld 1 ,
.Xr dlopen 3
.Sh 歴史
.Nm
関数は Solaris オペレーティングシステムで最初に現れました。
関数は Solaris オペレーティングシステムで最初に登場しました。
.Sh バグ
この関数は Solaris とバグに互換性があります。特に、
この関数は、Solaris での実装とバグに互換性があります。特に、
次のバグが存在します。
.Bl -bullet
.It
.Fa addr
が共有ライブラリではなくメインの実行可能モジュールにある場合、
.Va dli_fname
で返されるパス名は正しくない可能性があります。パス名は呼び出し
プロセスの
で返されるパス名は正しいものにならない可能性があります。
パス名は呼び出しプロセスの
.Va argv[0]
から直接取り出されます。フルパス名で指定されたプログラム
を実行するとき、ほとんどのシェルは
@ -106,14 +107,17 @@
.Fa addr
が形式
.Va &func
であり、
(
.Va func
がグローバル関数の場合、その値が意外に
良くない可能性があります。動的にリンクされたプログラムでは、
グローバル関数のアドレスは、関数自体の開始点ではなく、
プログラムリンクテーブルのエントリを指すと考えられます。これによって、
ほとんどのグローバル関数が、実際にコードが常駐する共有ライブラリではなく、
メインの実行可能モジュール内部で定義されるように見えます。
はグローバル関数) である場合、その値が
好ましくない驚くものになってしまう
可能性があります。動的リンクされたプログラムでは、
グローバル関数のアドレスは関数そのもののエントリポイントではなく、
プログラムリンクテーブルのエントリを指すと考えられます。
このため、大部分のグローバル関数が、実際のコードが入っている
共有ライブラリではなく、メインの実行可能モジュール内部で
定義されているように見えます。
.It
処理失敗の印として 0 を返すのは、Unix の長い伝統に反します。
処理の失敗を示すものとして 0 を返すのは、長く続いている
Unix の伝統に反することです。
.El

View file

@ -14,9 +14,9 @@
.\" NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT,
.\" INCIDENTAL, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
.\" FROM USE OF SUCH SOURCE CODE, REGARDLESS OF THE THEORY OF LIABILITY.
.\"
.\"
.\" This source code is provided with no support and without any obligation on
.\" the part of Sun Microsystems, Inc. to assist in its use, correction,
.\" the part of Sun Microsystems, Inc. to assist in its use, correction,
.\" modification or enhancement.
.\"
.\" SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
@ -30,13 +30,18 @@
.\" Copyright (c) 1991 Sun Microsystems, Inc.
.\"
.\" @(#) dlopen.3 1.6 90/01/31 SMI
.\" %FreeBSD: src/lib/libc/gen/dlopen.3,v 1.8.2.6 2001/08/17 15:42:32 ru Exp %
.\" $FreeBSD$
.\"
.\" WORD: directed acyclic graph 有向非巡回グラフ
.Dd September 24, 1989
.Os FreeBSD
.Os
.Dt DLOPEN 3
.Sh 名称
.Nm dlopen, dlsym, dlerror, dlclose
.Nm dlopen , dlsym , dlerror , dlclose
.Nd 動的リンカへのプログラムのインタフェース
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <dlfcn.h>
.Ft void *
@ -48,12 +53,12 @@
.Ft int
.Fn dlclose "void *handle"
.Sh 解説
これらの関数は、動的リンカサービスのために単純なプログラムの
インタフェースを備えています。
このようなオブジェクトが定義するシンボルの
アドレス結合を取得するため、およびこのようなオブジェクトを使用する
必要がなくなったときそれらを除去するため、プログラムのアドレス空間に新しい
共有オブジェクトを追加する操作が備わっています。
これらの関数は、動的リンカサービスに対する単純なプログラムの
インタフェースを提供します。
プログラムのアドレス空間に新しい共有オブジェクトを追加する操作、
共有オブジェクトが定義するシンボルのアドレス結合を取得する操作、
および共有オブジェクトを使用する必要がなくなったときに
それを除去する操作が提供されています。
.Pp
.Fn dlopen
は、
@ -62,165 +67,198 @@
.Fn dlsym
.Fn dlclose
の呼び出しにおいてオブジェクトの後の参照に使用できる記述子を
返します。
の呼び出しにおいて、オブジェクトを後で参照するために使用可能な
記述子を返します。
.Fn dlopen
の呼び出しの前に
を呼び出す前に
.Fa path
がアドレス空間内にない場合は、
それがアドレス空間に配置されます。オブジェクトが最初にこの方法で
アドレス空間にロードされるときに、その関数
がアドレス空間内になかった場合はアドレス空間に配置されます。
この方法で、オブジェクトが
初めてアドレス空間にロードされるとき、関数
.Fn _init
がある場合、この関数が
動的リンカによって呼び出されます
(
.Ql _init
は C 言語で表現される名前です。
アセンブリ言語からは、名前は代わりに
.Ql __init
として現れます)。
が存在すればそれが動的リンカによって呼び出されます。
先の
.Fn dlopen
直前の呼び出しでアドレス空間内に
呼び出しでアドレス空間内に
.Fa path
が既に配置されている場合、2 度めには追加されません。ただし、
が既に配置されている場合、2 度目は追加されません。
しかし、
.Fa path
について
上で
.Fn dlopen
操作の参照カウントは
維持されます。
操作の参照カウント値は管理されます。
.Fa path
のために指定された NULL ポインタは、プロセスの
メイン実行可能モジュールへのリファレンスとして解釈されます。
に指定されたものが NULL ポインタであれば、プロセスの
メイン実行可能モジュールへの参照として解釈されます。
.Fa mode
は、ロード
されたオブジェクトからの外部関数参照が、その参照に結合される方法を
制御します。これには次の値の 1 つが入っている必要があります。
は、ロードされたオブジェクトからの外部関数への参照が、
どのようにその参照先と結合するか、その方法を制御します。
これには次の値のうちの 1 つが含まれていなくてはなりません。
おそらくは、後で述べる追加フラグとの OR をとった値に
なるでしょう。
.Bl -tag -width RTLD_LAZYX
.It Dv RTLD_LAZY
外部関数参照は関数が最初に呼び出されるときに解決されます。
外部関数への参照はそれぞれ関数が最初に呼び出されるときに解決されます。
.It Dv RTLD_NOW
すべての外部関数参照はただちに
外部関数への参照はすべて
.Fn dlopen
によって結合されます。
によってただちに結合されます。
.El
.Pp
.Dv RTLD_LAZY
は、効率性の理由から一般にお勧めします。しかし、
は、効率を良くするという理由で一般的に好ましいです。しかし、
.Fn dlopen
の呼び出しの間に未定義シンボルが検出されることを確実にするためには
を呼び出している間に未定義シンボルを確実に発見するためには
.Dv RTLD_NOW
が便利です。
.Pp
次のフラグの 1 つを OR をとって
.Fa mode
引数の中に含めることができます。
.Bl -tag -width RTLD_GLOBALX
.It Dv RTLD_GLOBAL
この共有オブジェクトから得られるシンボルおよび
必要とされるオブジェクトの有向非巡回グラフ (DAG) が、
その他すべての共有オブジェクトからの未解決の参照を
解決するために利用可能になります。
.It Dv RTLD_LOCAL
この共有オブジェクトから得られるシンボルおよび
必要とされるオブジェクトの有向非巡回グラフ (DAG) が、
同一の共有オブジェクトからの未解決の参照を
解決するために利用可能になります。
こちらがデフォルトの動作ですが、このフラグを用いて
明示的に指定することができます。
.El
.Pp
.Fn dlopen
は、処理が失敗すると NULL ポインタを返し、
.Fn dlerror
で問い合わせできるエラー条件を設定します。
で問い合わせできるエラー状態を設定します。
.Pp
.Fn dlsym
は、ナル文字で終わるキャラクタストリング
.Fa symbol
で記述されたシンボル
のアドレス結合を返します。
は、
.Fa symbol
.Fa handle
で識別される共有オブジェクト内で
発生したときです。
発生したときと同様に、ヌル文字で終了する文字列
.Fa symbol
は、シンボル名のアセンブリ言語表現であることに
注意してください。
C 言語シンボルのアセンブリ言語表現には、先頭に追加の
アンダースコアが入っています。たとえば、
C でのシンボル
.Ql foo
は、
アセンブリ言語でおよび
.Fn dlsym
への
.Fa symbol
引数では
.Ql _foo
として現れます。
で記述されたシンボルのアドレス結合を返します。
.Fn dlopen
によってアドレス空間に追加されたオブジェクトによってエクスポート
されるシンボルは、
によってアドレス空間に追加されたオブジェクトによってエクスポートされる
シンボルは、
.Fn dlsym
の呼び出しによってのみアクセスできます。
このようなシンボルは、オブジェクトがロードされるときにアドレス空間内に既に
存在するシンボルの定義に取って代わることはなく、通常の動的リンク参照を
満足させるために利用できることもありません。
呼び出しを通してのみアクセス可能です。
このようなシンボルは、オブジェクトがロードされる際に、すでに
アドレス空間に存在しているシンボルの定義に置き換わるものでは
ありませんし、通常の動的リンク参照を満たすために利用可能な
ものでもありません。
.Pp
.Fn dlsym
が特別な
.Fa handle
の値として与えられた NULL ポインタは、
実行可能モジュールの参照として解釈されます。この実行可能
モジュールから
.Dv NULL
を使用して呼び出された場合は、
そのハンドルは呼び出しがされている実行ファイルあるいは
共有オブジェクトへの参照として解釈されます。このため、
共有オブジェクトは自分自身の持つシンボルを
参照できるのです。
.Pp
.Fn dlsym
の呼び出しが行われます。このように共有オブジェクト
は、専用のシンボルを参照できます。
が特別な
.Fa handle
.Dv RTLD_DEFAULT
を使用して呼び出された場合は、オブジェクトが
ロードされる際に未定義のシンボルを解決するために
使用されるアルゴリズムに従ってシンボルを探索します。
探索されるオブジェクトは次のように書かれた順番になります。
.Bl -enum
.It
参照しているオブジェクト自身 (あるいは
.Fn dlsym
は、シンボルが見つからない場合は
NULL ポインタを返し、エラー条件を設定します。エラー条件は
への呼び出しがされているオブジェクト)。ただし、オブジェクトが
.Xr ld 1
に対して
.Fl Wsymbolic
オプションを使用してリンクされた場合。
.It
プログラムの起動時にロードされていた全オブジェクト
.It
.Fn dlopen
経由でロードされた全オブジェクト。これらのオブジェクトは、
参照を行っているオブジェクトも含んだ、必要とされるオブジェクトの
有向非巡回グラフに存在します。
.It
.Dv RTLD_GLOBAL
フラグを
.Fa mode
引数で設定して呼び出した
.Fn dlopen
経由でロードされた全オブジェクト
.El
.Pp
.Fn dlsym
が特別な
.Fa handle
.Dv RTLD_NEXT
を使用して呼び出された場合、シンボルの検索は、
.Fn dlsym
呼び出しを発行した後でロードされた共有オブジェクトに制限されます。
そのため、メインプログラムからこの関数が呼び出された場合、
すべての共有ライブラリが検索されます。この関数が共有ライブラリから
呼び出された場合、
その共有ライブラリより後でロードされる共有ライブラリすべてが
検索されます。
.Dv RTLD_NEXT
はライブラリ関数を包み込むラッパを実装するのに便利です。
例えば、ラッパ関数
.Fn getpid
がある場合、関数内で
.Li dlsym(RTLD_NEXT, \&"getpid\&")
を使用すれば
.Dq 本物の
.Fn getpid
にアクセスできるでしょう。
.Pp
シンボルが見つけられなかった場合、
.Fn dlsym
は null ポインタを返し、エラー状態を設定します。
エラー状態は
.Fn dlerror
で照会できます。
.Pp
.Fn dlsym
が専用の
.Fa handle
.Dv RTLD_NEXT
で呼び出された場合、シンボルの検索は、
.Fn dlsym
の呼び出しの後で、ロードされた共有オブジェクトに制限されます。
このようにメインプログラムから関数が呼び出された場合、すべての共有
ライブラリが検索されます。これが共有ライブラリから呼び出された場合、
後続のすべての共有ライブラリが検索されます。
.Dv RTLD_NEXT
はライブラリ関数を
巡るラッパーを実現するのに便利です。たとえば、ラッパー関数
.Fn getpid
は、
.Li dlsym(RTLD_NEXT, \&"_getpid\&")
.Dq 現実の
.Fn getpid
にアクセスできます。
.Pp
を使用して問い合わせることができます。
.Fn dlerror
は、
.Fn dlopen ,
.Fn dlsym ,
または
.Fn dlclose
の呼び出しの間に発生した最後のエラーを記述する
ナル文字で終わるキャラクタストリングを返します。
呼び出しの間に発生した最後のエラーを記述する
ヌル文字で終了する文字列を返します。
このようなエラーが発生していない場合、
.Fn dlerror
は NULL ポインタを返します。
.Fn dlerror
を呼び出すたびに、エラー指示がリセットされます。
ですから、2 番めの呼び出しが最初の呼び出しの直後に続く
そのため、後の呼び出しが先の呼び出しの直後にくるような
.Fn dlerror
呼び出しの 2 つのケースでは、
2 番めの呼び出しは必ず NULL ポインタを返します。
呼び出しを行った場合、後の呼び出しでは必ず NULL ポインタが
返ってきます。
.Pp
.Fn dlclose
は、
.Fa handle
が参照する共有オブジェクトへの参照を削除します。参照
カウントが低下して
0 になると、そのオブジェクトはアドレス空間から除去され、
が参照する共有オブジェクトへの参照を削除します。
参照カウント値が減らされ 0 になると、そのオブジェクトはアドレス空間から
削除され
.Fa handle
は無効になります。この方法で共有オブジェクトを除去する直前に、動的
リンカはオブジェクトの
は無効になります。この方法で共有オブジェクトを除去する直前に、
.Fn _fini
関数がオブジェクトによって定義されている
場合、これを呼び出します。
.Ql _init
と同じように、
.Ql _fini
は関数の C 言語名です。
関数がこのオブジェクトで定義されている場合には
それを呼び出します。
.Fn dlclose
は、処理が成功すると値
0 を返します。そうでない場合は -1 を返し、
エラー条件を設定します。エラー条件
は、処理が成功すると値 0 を返します。
そうでない場合は -1 を返し、
エラー状態を設定します。エラー状態は
.Fn dlerror
で問い合わせできます。
.Pp
@ -228,20 +266,37 @@ NULL
.Fn _init
.Fn _fini
は、引数なしに呼び出され、戻り
値を返さないと予測されます。
は、引数なしに呼び出され、戻り値は期待されていません。
.Sh
ELF 実行可能ファイルの場合、
ファイル中で定義されているシンボルを
.Fn dlsym
で見えるようにするには
.Xr ld 1
に対して
.Fl export-dynamic
オプションを使用してリンクを行う必要があります。
.Pp
以前の実装では、C 言語からコンパイルしたオブジェクトコードと
シンボルの互換性を持たせることができるように、
外部シンボルにはすべてアンダースコアを先頭につける必要が
ありました。現在でも、
C 言語のコンパイラに対して (非推奨ですが)
.Fl aout
オプションを使用した場合には当てはまります。
.Sh エラー
.Fn dlopen
.Fn dlsym
は、エラーが発生した場合に NULL ポインタを返します。
は、エラーが発生した場合に NULL ポインタを返します。
.Fn dlclose
は処理が成功すると 0 を返し、
エラーが発生した場合は -1 を
返します。エラーが検出されるたびに、それの詳細を説明するメッセージが
エラーが発生した場合は -1 を返します。
エラーが検出されるたびに、エラーの詳細を説明するメッセージが
.Fn dlerror
の呼び出しによって取り出せます。
呼び出しによって取り出せます。
.Sh 関連項目
.Xr ld 1 ,
.Xr rtld 1 ,
.Xr dladdr 3 ,
.Xr link 5

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/net/ethers.3,v 1.10.2.6 2000/12/14 12:10:01 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/ethers.3,v 1.10.2.9 2001/08/17 15:42:38 ru Exp %
.\" $FreeBSD$
.\"
.Dd April 12, 1995
.Dt ETHERS 3
.Os FreeBSD
.Os
.Sh 名称
.Nm ethers ,
.Nm ether_line ,
@ -183,7 +183,6 @@ NIS
.Xr yp 4 ,
.Xr ethers 5
.Sh バグ
.Pp
.Fn ether_aton
関数と
.Fn ether_ntoa

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the American National Standards Committee X3, on Information
@ -15,8 +15,8 @@
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@ -33,8 +33,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)exit.3 8.1 (Berkeley) 6/4/93
.\"
.\" @(#)exit.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdlib/exit.3,v 1.6.2.3 2001/07/22 12:06:47 dd Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
@ -43,19 +43,22 @@
.Sh 名称
.Nm exit
.Nd 正常なプログラム終了を実行する
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft void
.Fn exit "int status"
.Sh 解説
.Fn Exit
.Fn exit
はプロセスを終了させます。
.Pp
終了の前に、リストした順に次の機能を実行します。
.Bl -enum -offset indent
.It
.Xr atexit 3
関数で登録された関数を呼び出します。登録とは逆の順序でです。
関数で登録された関数を呼び出します。
登録とは逆の順序で行われます。
.It
開いているすべての出力ストリームをフラッシュします。
.It
@ -67,9 +70,14 @@
.Pp
任意の値を
.Ar status
として環境に渡すのは、まずいスタイルと考えられました。代わりに、
として環境に返すのは、よくないスタイルとされています。
.Dv EXIT_SUCCESS
.Dv EXIT_FAILURE
という値を使用すべきでしょう。
移植性を考慮しなくていい場合は、
.Xr sysexits 3
で記述したように値を使用します。
に記述されている値を使用できます。
.Sh 戻り値
.Fn exit
関数は戻ることはありません。
@ -82,5 +90,5 @@
.Sh 規格
.Fn exit
関数は
.St -ansiC
準拠しています。
.St -isoC
適合しています。

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fclose.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdio/fclose.3,v 1.7.2.3 2001/03/06 16:46:00 ru Exp %
.\"
.\" $FreeBSD$
.\"

View file

@ -105,4 +105,4 @@
.Fn ferror
簇眶は、
.St -isoC
準拠しています。
適合しています。

View file

@ -32,7 +32,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ffs.3 8.2 (Berkeley) 4/19/94
.\"
.\" %FreeBSD: src/lib/libc/string/ffs.3,v 1.3.2.1 2000/04/22 17:06:37 phantom Exp %
.\" $FreeBSD$
.\"
.Dd April 19, 1994
@ -40,7 +40,9 @@
.Os
.Sh 名称
.Nm ffs
.Nd ビットストリングに設定された、最初のビットの検索
.Nd ビット列に設定された、最初のビットの検索
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <string.h>
.Ft int
@ -51,11 +53,11 @@
.Fa value
に設定された最初のビットを検索し、そのビットのインデックスを戻します。
ビットには、最も右のビットを 1 として番号が振られます。
戻り値が 0 である場合は、引数がゼロであったことを表します。
戻り値が 0 である場合は、引数が 0 であったことを表します。
.Sh 関連項目
.Xr bitstring 3
.Sh 歴史
.Fn ffs
関数は、
.Bx 4.3
に追加されました。
で登場しました。

View file

@ -121,4 +121,4 @@
.Fn fgetln
簇眶は、
.Bx 4.4
めて登場しました。
はじめて登場しました。

View file

@ -35,8 +35,8 @@
.\"
.\" @(#)fgets.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/fgets.3,v 1.6.2.5 2001/07/22 12:06:45 dd Exp %
.\" $FreeBSD$
.\" %FreeBSD: src/lib/libc/stdio/fgets.3,v 1.6.2.3 2001/03/06 16:46:01 ru Exp %
.\"
.Dd June 4, 1993
.Dt FGETS 3
@ -64,7 +64,7 @@
あるいはエラーが見つかったりした場合に停止します。
改行文字は、存在していれば保持されます。
任意の文字を読み込んでエラーが発生しなかった場合、
ストリングの最後には
文字列の最後には
.Ql \e0
文字が追加されます。
.Pp
@ -137,7 +137,7 @@
.Fn gets
関数は、
.St -isoC
準拠しています。
適合しています。
.Sh バグ
通常、次の入力行がある任意の長さより短いことを保証するのは
不可能であり、また入力バッファをオーバフローすると
@ -150,4 +150,4 @@
.Fn gets
は、
.St -isoC
準拠するためだけに存在しています。
適合するためだけに存在しています。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)floor.3 6.5 (Berkeley) 4/19/91
.\" %FreeBSD: src/lib/msun/man/floor.3,v 1.7.2.1 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/floor.3,v 1.7.2.2 2001/07/22 12:07:20 dd Exp %
.\"
.\" $FreeBSD$
.Dd March 10, 1994

View file

@ -34,8 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fopen.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/fopen.3,v 1.7.2.4 2001/03/06 16:46:01 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt FOPEN 3
.Os
@ -44,6 +45,8 @@
.Nm fdopen ,
.Nm freopen
.Nd ストリームをオープンする関数
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft FILE *
@ -56,43 +59,55 @@
.Fn fopen
関数は、
.Fa path
が指すストリングの名前を持つファイルをオープンし、
が指す文字列の名前を持つファイルをオープンし、
それにストリームを関連付けます。
.Pp
引数
.Fa mode
は、以下のシーケンスの
1 つで始まるストリングを指します (このシーケンスには、
別のキャラクタが続けても構いません)。
1 つで始まる文字列を指します
(このシーケンスには、別のキャラクタが続いても構いません)。
.Bl -tag -width indent
.It Dq Li r
テキストファイルを読込み用にオープンします。ストリームは、ファイルの
最初に位置付けられます。
テキストファイルを読込み用にオープンします。
ストリームは、ファイルの最初に位置付けられます。
.It Dq Li r+
読込み用と書込み用にオープンします。ストリームは、ファイルの最初に
位置付けられます。
読込み用と書込み用にオープンします。
ストリームは、ファイルの最初に位置付けられます。
.It Dq Li w
ファイルを長さゼロに切り捨てるか、書込み用テキストファイルを
作成します。ストリームは、ファイルの最初に位置付けられます。
書込み用に、ファイルを長さ 0 に切りつめるか、テキストファイルを作成します。
ストリームは、ファイルの最初に位置付けられます。
.It Dq Li w+
読込み用と書込み用にオープンします。ファイルが存在しない場合はその
ファイルが作成され、存在する場合は切り捨てられます。ストリームは、ファイル
の最初に位置付けられます。
読込み用と書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成され、
存在する場合は切りつめられます。
ストリームは、ファイルの最初に位置付けられます。
.It Dq Li a
書込み用にオープンします。ファイルが存在しない場合はそのファイルが
作成されます。ストリームは、ファイルの最後に位置付けられます。
書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成されます。
ストリームは、ファイルの最後に位置付けられます。
それに続くファイルへの書き込みは、
.Xr fseek 3
のような操作の介在に関わりなく、
常にファイルの現時点での最後へと行われます。
.It Dq Li a+
読込み用と書込み用にオープンします。ファイルが存在しない場合はその
ファイルが作成されます。ストリームは、ファイルの最後に位置付けられます。
読込み用と書込み用にオープンします。
ファイルが存在しない場合はそのファイルが作成されます。
ストリームは、ファイルの最後に位置付けられます。
それに続くファイルへの書き込みは、
.Xr fseek 3
のような操作の介在に関わりなく、
常にファイルの現時点での最後へと行われます。
.El
.Pp
.Fa mode
ストリングには、3 番目の文字として、または上で説明した 2 文字からなる
文字列の間に指定する文字として、文字 ``b'' を組み込むことができます。
文字列には、3 番目の文字として、
または上で説明した 2 文字からなる文字列の間に指定する文字として、
文字 ``b'' を含めることができます。
これは
.St -ansiC
との互換性を保つためのもので、
効果はありません。``b'' は無視されます。
.St -isoC
との互換性を保つためのもので、効果はありません。
``b'' は無視されます。
.Pp
作成されたファイルのモードは、
.Pf \\*q Dv S_IRUSR
@ -115,7 +130,8 @@
混ぜることができ、前バージョンの
.Em stdio
のように、それらの間にシーク操作は必要ありません。
しかしながら、これは他のシステムとの移植性を保持しません。というのは、
しかしながら、これは他のシステムへの移植性がありません。
というのは、
.Tn ANSI C
は、入力オペレーションがファイルの終了に達していない場合、
ファイル位置付け関数が出力と入力の間に
@ -124,17 +140,22 @@
.Fn fdopen
関数は、既存のファイル記述子
.Fa fildes
にストリームを関連付けます。ストリームの
にストリームを関連付けます。
ストリームの
.Fa mode
には、ファイル記述子のモードとの互換性が必要です。
.Xr fclose 3
によってストリームが閉じられた時には、
.Fa fildes
も閉じられます。
.Pp
.Fn freopen
関数は、
.Fa path
が指すストリングの名前が付いたファイルを開き、
が指す文字列の名前が付いたファイルを開き、
.Fa stream
が指すストリームを関連付けます。オリジナルのストリームが存在する
場合、それは閉じられます。
が指すストリームを関連付けます。
元のストリームが存在する場合、それは閉じられます。
.Fa mode
引数は、
.Fn fopen
@ -144,7 +165,7 @@
.Pf ( Em stderr,
.Em stdin
.Em stdout )
に関連付けられたファイルを変更することです。
に関連付けられたファイルを切替えることです。
.Sh 戻り値
呼び出しが成功すると、
.Fn fopen,
@ -152,13 +173,14 @@
.Fn freopen
.Tn FILE
ポインタを戻します。問題がある場合は
ポインタを返します。
問題がある場合は
.Dv NULL
戻し、そのエラーを示す値にグローバル変数
返し、そのエラーを示す値をグローバル変数
.Va errno
設定します。
設定します。
.Sh エラー
.Bl -tag -width [EINVAL]
.Bl -tag -width Er
.It Bq Er EINVAL
.Fn fopen ,
.Fn fdopen ,
@ -168,41 +190,37 @@
が正しくありません。
.El
.Pp
ルーチン
.Xr malloc 3
で指定されたエラーに関して、
.Fn fopen ,
.Fn fdopen ,
.Fn freopen
関数がエラーになり、
関数は、エラーが発生すると、ルーチン
.Xr malloc 3
で規定されたエラーを
.Va errno
が設定されることがあります。
に設定することもあります。
.Pp
ルーチン
.Xr open 2
で指定されたエラーに関して、
.Fn fopen
関数がエラーになり、
関数は、エラーが発生すると、ルーチン
.Xr open 2
で規定されたエラーを
.Va errno
が設定されることがあります。
に設定することもあります。
.Pp
ルーチン
.Xr fcntl 2
で指定されたエラーに関して、
.Fn fdopen
関数がエラーになり、
関数は、エラーが発生すると、ルーチン
.Xr fcntl 2
で規定されたエラーを
.Va errno
が設定されることがあります。
に設定することもあります。
.Pp
ルーチン
.Fn freopen
関数は、エラーが発生すると、ルーチン
.Xr open 2 ,
.Xr fclose 3 ,
.Xr fflush 3
で指定されたエラーに関して、
.Fn freopen
関数がエラーになり、
で規定されたエラーを
.Va errno
が設定されることがあります。
に設定することもあります。
.Sh 関連項目
.Xr open 2 ,
.Xr fclose 3 ,
@ -213,10 +231,9 @@
関数と
.Fn freopen
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Fn fdopen
関数は、
.St -p1003.1-88
に準拠しています。
.\"X kuma 1999-11-5
に適合しています。

View file

@ -34,8 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fread.3 8.2 (Berkeley) 3/8/94
.\"
.\" %FreeBSD: src/lib/libc/stdio/fread.3,v 1.5.2.2 2001/03/06 16:46:01 ru Exp %
.\" $FreeBSD$
.\"
.Dd March 8, 1994
.Dt FREAD 3
.Os
@ -43,6 +44,8 @@
.Nm fread ,
.Nm fwrite
.Nd バイナリストリーム入出力
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft size_t
@ -76,14 +79,15 @@
.Fn fread
関数と
.Fn fwrite
関数は、読み書きしたバイト数だけ、ストリームの
ファイル位置インジケータを進め、読み書きしたオブジェクト数を戻します。
エラーが発生した場合、またはファイルの終了に達した場合は、短い
オブジェクト数 (またはゼロ) が戻されます。
関数は、読み書きしたバイト数だけ
ストリームのファイル位置インジケータを進め、
読み書きしたオブジェクト数を返します。
エラーが発生した場合、またはファイルの終了に達した場合は、
指定したものより少ないオブジェクト数 (または 0) を返します。
.Pp
.Fn fread
関数は、ファイルの終了とエラーを区別しません。ファイルの終了か
エラーかを判断するためには、呼び出し側が
関数は、ファイルの終了とエラーを区別しません。
ファイルの終了かエラーかを判断するためには、呼び出し側が
.Xr feof 3
.Xr ferror 3
@ -91,7 +95,7 @@
.Fn fwrite
は、書き込みエラーが発生した場合に限って
.Fa nmemb
より小さい値を戻します。
より少ない値を返します。
.Pp
.Sh 関連項目
.Xr read 2 ,
@ -102,7 +106,5 @@
関数と
.Fn fwrite
関数は、
.St -ansiC
準拠しています。
.\"X kuma 1999-11-6
.St -isoC
に適合しています。

View file

@ -34,18 +34,23 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fseek.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/fseek.3,v 1.5.2.6 2001/08/31 10:15:14 ru Exp %
.\" $FreeBSD$
.Dd June 4, 1993
.\"
.Dd March 5, 1999
.Dt FSEEK 3
.Os
.Sh 名称
.Nm fgetpos ,
.Nm fseek ,
.Nm fseeko ,
.Nm fsetpos ,
.Nm ftell ,
.Nm ftello ,
.Nm rewind
.Nd ストリームの位置変更
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft int
@ -58,6 +63,11 @@
.Fn fgetpos "FILE *stream" "fpos_t *pos"
.Ft int
.Fn fsetpos "FILE *stream" "const fpos_t *pos"
.Fd #include <sys/types.h>
.Ft int
.Fn fseeko "FILE *stream" "off_t offset" "int whence"
.Ft off_t
.Fn ftello "FILE *stream"
.Sh 解説
.Fn fseek
関数は、
@ -78,9 +88,9 @@
.Fn fseek
関数の呼び出しで
問題が発生しない場合は、ストリームの end-of-file 指示子がクリアされ、
そのストリーム
そのストリームに対する
.Xr ungetc 3
関数の果は取り消されます。
関数の果は取り消されます。
.Pp
.Fn ftell
関数は、
@ -99,42 +109,60 @@
.Pp
.Dl (void)fseek(stream, 0L, SEEK_SET)
.Pp
.Fn fseeko
関数は
.Fn fseek
と同様ですが、
引数には
.Fa long
の代わりに
.Fa off_t
をとります。
同様に
.Fn ftello
関数は
.Fn ftell
と同じですが、
.Fa off_t
を返します。
.Pp
.Fn fgetpos
関数と
.Fn fsetpos
関数は、
.Fa whence
関数は、( whence を
.Dv SEEK_SET
に設定した
に設定した )
.Fn ftell
.Fn fseek
と同じインタフェースで、ファイルオフセットの現在の値を
.Fa pos
が参照するオブジェクトから設定したり、
.Fa pos
が参照するオブジェクトに保存したりします。
.Tn UNIX
以外の一部のシステムでは、
一部の
.Pq Tn UNIX 以外の
システムでは、
.Dq Fa fpos_t
オブジェクトが複合オブジェクトとなり
オブジェクトが複合オブジェクトであるかもしれないので
移植性を保ちながらテキストストリームの位置を
変更するためには、このルーチンに依るしかないこともあります。
.Sh 戻り値
.Fn rewind
関数は値をしません。
.Fn fgetpos ,
.Fn fseek ,
.Fn fsetpos
は、問題なく終了すると 0 を戻し
関数は値をしません。
.Pp
.Rv -std fgetpos fseek fseeko fsetpos
.Pp
成功して終了すると
.Fn ftell
は現在のオフセットを戻します。問題がある場合は \-1 が戻され、
そのエラーを示す値がグローバル変数
および
.Fn ftello
は現在のオフセットを返します。それ以外の場合は \-1 が返され、
グローバル変数
.Va errno
に設定されます。
が設定されてエラーを示します。
.Sh エラー
.Bl -tag -width [EINVAL]
.Bl -tag -width Er
.It Bq Er EBADF
指定された
.Fa stream
@ -148,21 +176,27 @@
.Dv SEEK_END ,
.Dv SEEK_CUR
のどれでもありません。
.It Bq Er EOVERFLOW
.Fn ftell
を実行した結果のファイルのオフセットが
long 型のオブジェクトでは正しく表現できない値となりました。
.El
.Pp
.Fn fgetpos ,
.Fn fseek ,
.Fn fseeko ,
.Fn fsetpos ,
.Fn ftell ,
.Fn ftello
関数が失敗した時には、
ルーチン
.Xr fflush 3 ,
.Xr fstat 2 ,
.Xr lseek 2 ,
.Xr malloc 3
で指定されたエラーに関して、
.Fn fgetpos ,
.Fn fseek ,
.Fn fsetpos ,
.Fn ftell
関数がエラーになり、
について示しているエラーが
.Va errno
が設定されることがあります。
に設定されていることもあります。
.Sh 関連項目
.Xr lseek 2
.Sh 規格
@ -172,6 +206,13 @@
.Fn ftell ,
.Fn rewind
関数は、
.St -ansiC
.St -isoC
に準拠しています。
.Pp
.Fn fseeko
.Fn ftello
関数は、
.St -susv2
に準拠しています。
.\"X kuma 1999-11-6

View file

@ -32,8 +32,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)funopen.3 8.1 (Berkeley) 6/9/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/funopen.3,v 1.7.2.3 2001/07/22 12:06:46 dd Exp %
.\" $FreeBSD$
.\"
.Dd June 9, 1993
.Dt FUNOPEN 3
.Os
@ -42,6 +43,8 @@
.Nm fropen ,
.Nm fwopen
.Nd ストリームのオープン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft FILE *
@ -52,22 +55,27 @@
.Fn fwopen "void *cookie" "int (*writefn)(void *, const char *, int)"
.Sh 解説
.Fn funopen
関数は、最大
4 つの「
.Tn I/O
機能」にストリームを関連付けます。
関数は、ストリームを最大 4 つの
.Dq Tn I/O No 関数
に関連付けます。
.Fa readfn
.Fa writefn
を指定してください。適切に入力した
Null
ポインタとして、その他を指定することもできます。この
のどちらかは必ず指定しなければなりません。
それ以外の箇所には適当な型の
.Dv NULL
ポインタを与えることができます。
これらの
.Tn I/O
機能は、新しいストリームの読込み、書込み、シーク、クローズに使用されます。
関数は、新しいストリームに対する
読込み、書込み、シーク、クローズのために使用されます。
.Pp
一般的に、機能を省略すると、作成されたストリームでの関連オペレーション
の実行がエラーになります。クローズ機能を省略した場合、ストリームを閉じ
ると、バッファの出力がフラッシュされて問題なく終了します。
通常、関数を省略したということは、
作成されたストリームに関連付けられた操作を実行すると失敗する、
ということを意味しています。
クローズ関数が省略されている場合は、
ストリームを閉じるとバッファリングされている出力がフラッシュされ、
成功して終了します。
.Pp
.Fa readfn ,
.Fa writefn ,
@ -78,66 +86,66 @@ Null
.Xr write 2 ,
.Xr seek 2 ,
.Xr close 2
のものと同じですが、従来のファイル記述子引数の場所で
のものと同じですが、通常ファイル記述子引数が置かれる場所に
.Fn funopen
に指定された
.Fa cookie
引数が渡されるという違いがあります。
.Pp
読込み
読込みおよび書込み
.Tn I/O
機能と書込み
.Tn I/O
機能では、
関数は、
.Xr setvbuf 3
を呼び出せば、完全にバッファ化されたストリームかラインでバッファ化され
たストリームで基礎となるバッファを変更できます。バッファに完全に情報を
入力したり、バッファを完全に空にしたりする必要はありません。しかし、バッ
ファ化されていないストリームからバッファ化されたストリームに変更したり、
ラインバッファリングフラグの状態を変更したりすることはできません。また、
最近指定されたもの以外で、バッファでの読込み呼び出しや書込み呼び出しの
準備をする必要があります。
を呼び出すことによって、
完全にバッファリングされたもしくは行単位でバッファリングされたストリームの
基礎となるバッファを変更することが許可されています。
バッファを完全に満たしたり完全に空にしたりすることまでは要求されません。
しかし、バッファリングされていない状態から
バッファリングされた状態に変更したり、
行バッファのフラグの状態を変更したりすることは許可されていません。
最近指定された以外のバッファに対して読込みや書込みの呼び出しが
発生するということに備えておく必要があります。
.Pp
すべてのユーザ
.Tn I/O
機能は、\-1 を戻すことでエラーを報告します。エラーが発生した場合、すべ
ての機能は外部変数
関数は、\-1 を返すことでエラーを報告することができます。
さらに、エラーが発生した場合、すべての関数は外部変数
.Va errno
を適切に設定する必要があります。
.Pp
.Fn closefn
エラーが発生すると、ストリームは閉じます
のエラーは、ストリームを開いた状態には保持しません
.Pp
便宜を図るため、インクルードファイル
.Aq Pa stdio.h
では、読込み機能か書込み機能だけを指定した
では、
.Fn funopen
呼び出しのようなマクロ
を読込みまたは書込み関数だけを指定して呼び出す時のような、
.Fn fropen
マクロ
.Fn fwopen
が定義されています。
マクロが定義されています。
.Sh 戻り値
問題なく終了すると、
成功して終了すると、
.Fn funopen
.Dv FILE
ポインタを戻します。問題がある場合
.Dv Null
戻され、そのエラーを示す値にグローバル変数
ポインタを返します。それ以外の場合で
.Dv NULL
返され、エラーを示す値がグローバル変数
.Va errno
設定されます。
設定されます。
.Sh エラー
.Bl -tag -width [EINVAL]
.Bl -tag -width Er
.It Bq Er EINVAL
.Fn funopen
関数が、読込み機能か書込み機能なしで呼び出されました。
関数が、読込み関数または書込み関数のどちらも指定されずに呼び出されました。
.Fn funopen
関数がエラーになると、ルーチン
関数は失敗した時に
.Xr malloc 3
に指定されたエラーに
ルーチンのために指定されたエラーを
.Va errno
が設定されることもあります。
に設定することもあります。
.El
.Sh 関連項目
.Xr fcntl 2 ,
@ -148,11 +156,11 @@ Null
.Xr setbuf 3
.Sh 歴史
.Fn funopen
関数は
関数は
.Bx 4.4
追加されました。
初めて現れました。
.Sh バグ
.Fn funopen
関数は
関数は
.Bx
以外のシステムに移植できないことがあります
以外のシステムには移植可能でないかもしれません

View file

@ -34,8 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getc.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/getc.3,v 1.5.2.4 2001/08/17 15:42:41 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt GETC 3
.Os
@ -44,7 +45,9 @@
.Nm getc ,
.Nm getchar ,
.Nm getw
.Nd 入力ストリームから次のキャラクタまたはワードを取得
.Nd 入力ストリームから次の文字またはワードを取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft int
@ -59,45 +62,50 @@
.Fn fgetc
関数は、
.Fa stream
で指定したストリームから、次の入力キャラクタを(それがあれば)取得するか、
で指したストリームから、(存在している場合) 次の入力文字を取得するか、
または、
.Xr ungetc 3
によってそのストリームにプッシュバックされた、次のキャラクタを取得します。
によってそのストリームにプッシュバックされた、次の文字を取得します。
.Pp
.Fn getc
関数
関数
.Fn fgetc
と同じ機能ですが、これはインラインで展開するマクロです。
基本的に同じ機能ですが、これはインラインで展開するマクロです。
.Pp
.Fn getchar
関数は引数 stdin 付きの
関数は、
引数 stdin がついている
.Fn getc
と等です。
等です。
.Pp
.Fn getw
関数は
.Fa stream
で指したストリームから、次の
で指したストリームから、次の
.Em int
(それがあれば)取得します。
(存在している場合) 取得します。
.Sh 戻り値
処理が無事に完了した場合、これらのルーチンはいずれも
処理が正常に完了した場合、これらのルーチンはいずれも
.Fa stream
から次の要求オブジェクトを返します。ストリームがエンドオブファイルに達
したか、または 読み込みエラーが発生した場合は
から次の要求オブジェクトを返します。
ストリームがファイルの終わりに達したか、
または読込みエラーが発生した場合は
.Dv EOF
を返します。エンドオブファイルかエラーかの識別には、
を返します。
ファイルの終わりか、エラーなのかを識別するには、
.Xr feof 3
および
.Xr ferror 3
ルーチンを使用する必要があります。エラーが発生した場合はグローバル変数
ルーチンを使用する必要があります。
エラーが発生した場合は、グローバル変数
.Va errno
が設定されるので、それによってエラーが識別できます。エンドオブファイル
条件は端末上であっても記憶され、以後の読み込みの試みにはすべて
.Dv EOF
が返されます。
にエラーを示す値が設定されます。
ファイルの終端を示す状態は端末であってもそのまま残り、
その後の読み込みに対しては
.Xr clearerr 3
によってこの条件がクリアされるまで、それは続きます。
によって状態がクリアされなければ
.Dv EOF
を返すことになります。
.Sh 関連項目
.Xr ferror 3 ,
.Xr fopen 3 ,
@ -110,11 +118,11 @@
および
.Fn getchar
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Sh バグ
.Dv EOF
が有効な整数値なので、
は、有効な整数値なので
.Fn getw
を呼び出した後のエラーをチェックするには、
.Xr feof 3
@ -122,7 +130,8 @@
.Xr ferror 3
を使用する必要があります。
.Em int
のサイズとバイト順はマシンによってさまざまです。移植可能なアプリケーショ
ンが目的なら、
のサイズとバイト順はマシンによってさまざまです。
移植可能なアプリケーションが目的なら、
.Fn getw
の使用は推奨できません。
.Pp

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1988, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the American National Standards Committee X3, on Information
@ -15,8 +15,8 @@
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@ -33,9 +33,10 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)getenv.3 8.2 (Berkeley) 12/11/93
.\"
.\" @(#)getenv.3 8.2 (Berkeley) 12/11/93
.\" %FreeBSD: src/lib/libc/stdlib/getenv.3,v 1.4.2.6 2001/08/31 10:15:15 ru Exp %
.\" $FreeBSD$
.\"
.Dd December 11, 1993
.Dt GETENV 3
.Os
@ -45,6 +46,8 @@
.Nm setenv ,
.Nm unsetenv
.Nd 環境変数関数
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft char *
@ -56,62 +59,58 @@
.Ft void
.Fn unsetenv "const char *name"
.Sh 解説
これらの関数は環境変数を設定し、設定を解除し、ホストの
これらの関数は、環境変数を設定もしくは削除し、またホストの
.Em environment list
からそれらを取り出します。異なる環境規定との互換性を得るため、与えられ
た引数
からそれらを取り出します。
異なる慣習の環境との互換性のため、与えられた引数
.Ar name
および
.Ar value
はそれぞれ、等価記号
.Dq Li \&= .
.Dq Li \&=
によって後に付加することも、前に付加することもできます。
.Pp
.Fn getenv
関数は、環境変数
.Ar name
の現在の値を取得します。変数
の現在の値を取得します。
変数
.Ar name
が現在の
環境にない場合は、null ポインタが返ります。
が現在の環境にない場合は、null ポインタが返ります。
.Pp
.Fn setenv
関数は環境変数
関数は環境変数
.Ar name
を現在の環境リストに挿入またはリセットします。変数
を現在の環境リストに挿入または再設定します。
変数
.Ar name
がリストにない場合は、与えられた
.Ar value
によって挿入されます。変数が存在する場合は引数
に設定されて挿入されます。
変数が存在する場合は引数
.Ar overwrite
テストされ、
検査され、
.Ar overwrite
ゼロならば変数
0 ならば変数
.Ar name
は上書きされず、その他の場合は与えられた値に再設定されます。
は再設定されません。
その他の場合は、与えられた値に再設定されます。
.Pp
.Fn putenv
関数は ``name=value'' の形で引数をとります。これは次と等価です。
関数は、``name=value'' の形で引数をとります。
これは次と等価です。
.Bd -literal -offset indent
setenv(name, value, 1);
.Ed
.Pp
.Fn unsetenv
関数は
関数は
.Fa name
で示される変数名のインスタンスを、リストからすべて削除します。
.Sh 戻り値
関数
.Fn setenv
および
.Fn putenv
は、成功するとゼロを返します。その他の場合は、エラーを示すためにグロー
バル変数
.Va errno
が設定され、
\-1 が返ります。
.Rv -std setenv putenv
.Sh エラー
.Bl -tag -width [ENOMEM]
.Bl -tag -width Er
.It Bq Er ENOMEM
環境にメモリを割り振ることができなかったので、関数
.Fn setenv
@ -127,8 +126,26 @@ setenv(name, value, 1);
.Sh 規格
.Fn getenv
関数は、
.St -ansiC
に準拠しています。
.St -isoC
に適合しています。
.Sh バグ
異なる大きさの
.Ar value
を同じ
.Ar name
に設定する、連続した
.Fn setenv
.Fn putenv
の呼び出しは、メモリリークを引き起こします。
.Fx
のこれらの関数のセマンティクス
(つまり
.Ar value
の内容はコピーされ、その古い値はいつまでもアクセス可能のまま残される)
によって、このバグは回避不能です。
このバグを修正するために、将来のバージョンでは、
このセマンティクスの保証の一つ、もしくは両方を削除するかも知れません。
.Sh 歴史
関数
.Fn setenv
@ -136,8 +153,8 @@ setenv(name, value, 1);
.Fn unsetenv
は、
.At v7
最初に登場しました。
初めて登場しました。
.Fn putenv
関数は、
.Bx 4.3 Reno
最初に登場しました。
初めて登場しました。

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)gethostbyname.3 8.4 (Berkeley) 5/25/95
.\" %FreeBSD: src/lib/libc/net/gethostbyname.3,v 1.12.2.3 2001/03/06 16:45:59 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/gethostbyname.3,v 1.12.2.6 2001/08/17 15:42:38 ru Exp %
.\" $FreeBSD$
.\"
.Dd May 25, 1995
.Dt GETHOSTBYNAME 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm gethostbyname ,
.Nm gethostbyname2 ,
@ -193,7 +193,9 @@ struct hostent {
.Fn gethostbyname ,
.Fn gethostbyname2 ,
.Fn gethostbyaddr
のエラー状態は、ヌルポインタが返ることで示されます。その場合は外部整数
のエラー状態は、
.Dv NULL
ポインタが返ることで示されます。その場合は外部整数
.Va h_errno
をチェックすることにより、
一時的なエラーであるのか、
@ -230,6 +232,7 @@ struct hostent {
たとえばメールフォワーダがそのドメインに登録されている場合があります。
.El
.Sh 関連項目
.Xr getaddrinfo 3 ,
.Xr resolver 3 ,
.Xr hosts 5 ,
.Xr hostname 7 ,
@ -283,7 +286,7 @@ struct hostent {
.Fn gethostbyname2
関数は
.Tn BIND
バージョン 4.9.4 でめて登場しました。
バージョン 4.9.4 ではじめて登場しました。
.Sh バグ
これらの関数は静的データ記憶域を使用します。
後でこのデータを使う必要がある場合は、以後のこれらの関数呼び出しで

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getnetent.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/getnetent.3,v 1.11.2.1 2000/04/22 17:06:05 phantom Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/getnetent.3,v 1.11.2.3 2001/08/17 15:42:38 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt GETNETENT 3
.Os BSD 4.2
.Os
.Sh ̾¾Î
.Nm getnetent ,
.Nm getnetbyaddr ,

View file

@ -30,30 +30,34 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getopt.3 8.5 (Berkeley) 4/27/95
.\"
.\" %FreeBSD: src/lib/libc/stdlib/getopt.3,v 1.11.2.7 2001/08/17 15:42:42 ru Exp %
.\" $FreeBSD$
.\"
.Dd April 27, 1995
.Dt GETOPT 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm getopt
.Nd コマンドラインの引数リストからのオプション文字の取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <unistd.h>
.Vt extern char *optarg;
.Vt extern int optind;
.Vt extern int optopt;
.Vt extern int opterr;
.Vt extern int optreset;
.Vt extern char *optarg ;
.Vt extern int optind ;
.Vt extern int optopt ;
.Vt extern int opterr ;
.Vt extern int optreset ;
.Ft int
.Fn getopt "int argc" "char * const *argv" "const char *optstring"
.Sh 解説
.Fn getopt
関数はコマンドラインの引数リスト
関数はコマンドラインの引数リスト
.Fa argv
を逐次的に解析して、次の
.Em 既知
オプション文字を返します。受け入れオプション文字集合の文字列
オプション文字を返します。
受け入れオプション文字集合の文字列
.Fa optstring
に指定されていた場合、そのオプション文字は
.Em 既知
@ -61,64 +65,67 @@
.Pp
オプション文字列
.Fa optstring
は次の要素含み得ます。それは、個々の文字と、後にコロンが付いた文字です。
コロン付きの文字は後にオプションの引数が続くことを意味します。たとえば、
オプション文字列
は次の要素含み得ます。
それは、個々の文字と、後にコロンが付いた文字です。
コロン付きの文字は、後にオプションの引数が続くことを意味します。
たとえば、オプション文字列
.Li "\&""x""
はオプション
.Dq Fl x
を受け入れ、
オプション文字列
を受け入れ、オプション文字列
.Li "\&""x:""
はオプションと引数
.Dq Fl x argument
を受け入れます。後に続く引数の頭に余白があっても、
を受け入れます。
後に続く引数の頭に空白があっても、
.Fn getopt
は構いません。
.Pp
.Fn getopt
からの戻ると
から戻った時
.Va optarg
はそれが予期されていればオプションの引数を示し、変数
それが予期されていればオプションの引数を示しており、変数
.Va optind
には以後の
には以後の
.Fn getopt
呼び出しで使用する次の
呼び出しで使用する次の
.Fa argv
引数のインデックスが含まれます。また変数
引数のインデックスが含まれます。
また変数
.Va optopt
は、
.Fn getopt
によって返された最後の
.Em 既知
オプション文字を保存します。
オプション文字を保存します。
.Pp
変数
.Va opterr
および
.Va optind
はどちらも 1 に初期化されます。多かれ少なかれ
はどちらも 1 に初期化されます。
一連の
.Fn getopt
呼び出しの前ならば、いくつかの
.Fa argv
エントリを飛び越すための
.Fn getopt
呼び出しの設定前ならば、
エントリを飛び越すために、
.Va optind
変数別の値に設定できます。
変数を別の値に設定できます。
.Pp
複数セットの引数の評価または、1 つの引数セットの複数回評価のために
複数セットの引数の評価、または 1 つの引数セットの複数回評価のために
.Fn getopt
を使用する場合、2 回目以降の
を使用する場合、2 回目以降行われる追加の各一連
.Fn getopt
各追加呼び出し設定前に変数
呼び出し前に変数
.Va optreset
に設定し、変数
に設定し、変数
.Va optind
再初期化する必要があります。
再初期化する必要があります。
.Pp
.Fn getopt
関数は引数リストを使い果たした場合 \-1 を、受け入れられない
関数は引数リストを使い果たした場合 \-1 を、受け入れられない
オプションに出会った場合は
.Ql ?
.Ql ?\&
を返します。引数リストにあるオプションの解釈は、オプション
.Ql --
(2 重のダッシュ) によって取り消すことができます。
@ -131,13 +138,13 @@
\-1 を返します。
.Sh 診断
文字列
.Va optarg
.Va optstring
にない文字に出会うか、またはオプション引数の欠落を検出すると、
.Fn getopt
関数はエラーメッセージを
.Em stderr
に書き出して
.Ql ?
.Ql ?\&
を返します。
.Va opterr
を 0 に設定すると、これらのエラーメッセージは無効になります。
@ -162,8 +169,6 @@
規格への拡張です。
.Sh 使用例
.Bd -literal -compact
extern char *optarg;
extern int optind;
int bflag, ch, fd;
bflag = 0;
@ -173,11 +178,8 @@ while ((ch = getopt(argc, argv, "bf:")) != -1)
bflag = 1;
break;
case 'f':
if ((fd = open(optarg, O_RDONLY, 0)) < 0) {
(void)fprintf(stderr,
"myname: %s: %s\en", optarg, strerror(errno));
exit(1);
}
if ((fd = open(optarg, O_RDONLY, 0)) < 0)
err(1, "%s", optarg);
break;
case '?':
default:
@ -190,51 +192,58 @@ argv += optind;
.Fn getopt
関数は
.Bx 4.3
最初に取り入れられました。
初めて登場しました。
.Sh バグ
かつて
.Fn getopt
関数はいったん\-1 の代わりに
関数は、\-1 の代わりに
.Dv EOF
を返すように指定されました。これは、
を返すように定められていました。
この仕様は、
.Fn getopt
.Aq Pa stdio.h
から切り離すことで、
から切り離すために
.St -p1003.2-92
により変更されました。
変更されました。
.Pp
関連する引数を持つことは
.Em 決して
許されませんが、
.Fa optstring
の文字として単一ダッシュ
.Dq Li -
も指定できますが、
関連する引数を持つことは
.Em 決して
許されません。このため、オプションフラグとして
も指定できます。
このため、オプションフラグとして
.Dq Li -
が予期されるプログラムでも、
を期待しているプログラムでも、
.Fn getopt
を使用可能です。しかし、これは間違いです。
現在のどのようなプログラム開発でもこれは使うべきではありません。
を使用可能です。
しかし、これは良い方法ではありません。
現在のどのようなプログラム開発でも、これを使うべきではありません。
下位互換のため
.Em だけ
に存在します。
デフォルトで単一ダッシュは、
.Fn getopt
\-1 を返させます。これは System V と互換であるはずです。
\-1 を返させます。
これは System V と互換であるはずです。
.Pp
オプション文字として数字も使えます。このため、オプションとして数字
オプション文字として数字も使えます。
このため、オプションとして数字
.Pq Dq Li \&-\&3
が予期されるプログラムでも
を期待しているプログラムでも
.Fn getopt
を使用可能です。しかし、これは間違いです。
現在のどのようなプログラム開発でもこれは使うべきではありません。
を使用可能です。
しかし、これは良い方法ではありません。
現在のどのようなプログラム開発でも、これを使うべきではありません。
下位互換のため
.Em だけ
に存在します。
次のコードフラグメントが、ほとんどの場合に動作します。
次のコードフラグメントが、ほとんどの場合 (でもすべてではない) に動作します。
.Bd -literal -offset indent
int length;
char *p;
char *p, *ep;
while ((ch = getopt(argc, argv, "0123456789")) != -1)
switch (ch) {
@ -242,9 +251,16 @@ while ((ch = getopt(argc, argv, "0123456789")) != -1)
case '5': case '6': case '7': case '8': case '9':
p = argv[optind - 1];
if (p[0] == '-' && p[1] == ch && !p[2])
length = atoi(++p);
else
length = atoi(argv[optind] + 1);
length = strtol(++p, &ep, 10);
else if (argv[optind] && argv[optind][1] == ch) {
length = strtol((p = argv[optind] + 1),
&ep, 10);
optind++;
optreset = 1;
} else
usage();
if (*ep != '\0')
errx(EX_USAGE, "illegal number -- %s", p);
break;
}
.Ed

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getprotoent.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/getprotoent.3,v 1.4.2.1 2000/04/22 17:06:06 phantom Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/getprotoent.3,v 1.4.2.3 2001/08/17 15:42:38 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt GETPROTOENT 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm getprotoent ,
.Nm getprotobynumber ,
@ -103,7 +103,7 @@ struct protoent {
.Fn getprotobyname
および
.Fn getprotobynumber
関数は、適合するプロトコル名またはプロトコル番号が見かるか、または
関数は、適合するプロトコル名またはプロトコル番号が見かるか、または
.Dv EOF
に達するまで、ファイルを最初から順次検索します。
.Sh 戻り値

View file

@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getpw.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libcompat/4.1/getpw.3,v 1.5.2.2 2000/12/29 14:44:57 ru Exp %
.\"
.\" %FreeBSD: src/lib/libcompat/4.1/getpw.3,v 1.5.2.4 2001/08/17 15:42:55 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt GETPW 3
.Os
@ -47,7 +47,8 @@
.Fn getpw "uid_t uid" "char *buf"
.Sh 解説
.Bf -symbolic
getpw 関数は、getpwuid(3)
getpw 関数は、
.Xr getpwuid 3
の登場によって旧式のものとなっています。
.Ef
.Pp
@ -80,7 +81,7 @@ null
.Fn getpw
関数は
.At v6
めて登場しました。
はじめて登場しました。
.Sh バグ
.Fa buf
で示された領域は、ユーザ名を保持するのに十分な大きさである

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)getservent.3 8.3 (Berkeley) 1/12/94
.\" %FreeBSD: src/lib/libc/net/getservent.3,v 1.7.2.2 2000/12/08 13:49:28 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/getservent.3,v 1.7.2.4 2001/08/17 15:42:38 ru Exp %v
.\" $FreeBSD$
.\"
.Dd July 9, 1995
.Dt GETSERVENT 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm getservent ,
.Nm getservbyport ,
@ -108,12 +108,12 @@ struct servent {
.Fn getservbyport
関数は、適合するプロトコル名またはポート番号
(これはネットワークバイトオーダで指定されなければなりません)
が見かるか、さもなければ
が見かるか、さもなければ
.Dv EOF
に達するまで、ファイルを最初から順次検索します。
プロトコル名が与えられていても (
.Dv NULL
でなくても)、検索は適合するプロトコルが見かるまで続けられます。
でなくても)、検索は適合するプロトコルが見かるまで続けられます。
.Sh 関連ファイル
.Bl -tag -width /etc/services -compact
.It Pa /etc/services

View file

@ -30,17 +30,20 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getsubopt.3 8.1 (Berkeley) 6/9/93
.\"
.\" %FreeBSD: src/lib/libc/stdlib/getsubopt.3,v 1.5.2.3 2001/01/12 16:15:58 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 9, 1993
.Dt GETSUBOPT 3
.Os
.Sh 名称
.Nm getsubopt
.Nd 引数からサブオプションを取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Vt extern char *suboptarg
.Fd #include <unistd.h>
.Vt extern char *suboptarg ;
.Ft int
.Fn getsubopt "char **optionp" "char * const *tokens" "char **valuep"
.Sh 解説
@ -48,58 +51,51 @@
関数は、
1 つまたは複数のタブ、スペースまたはコンマ
.Pq Ql \&,
キャラクタによって区切られた、トークンが含まれるストリングを解析します。
ユーティリティコマンドラインの一部として提供される、オプション引数グループ
解析に使用するのが目的です。
キャラクタによって区切られたトークンが含まれる文字列を解析します。
ユーティリティのコマンドラインの一部として入力される、
オプション引数のまとまりを解析するのに使用するのが目的です。
.Pp
引数
.Fa optionp
は、ストリングのポインタを示すポインタです。引数
は、文字列へのポインタを指すポインタです。
引数
.Fa tokens
は、
ストリングのポインタの
は、文字列へのポインタを持つ、
.Dv NULL
で終わる配列をすポインタです。
で終わる配列をすポインタです。
.Pp
.Fn getsubopt
関数は、ストリングの最初のトークンに適合するストリングを、
参照するポインタのゼロベースオフセットを返します。ストリングにトークンが
一切含まれない、または
関数は、文字列の最初のトークンに適合する文字列を参照する
.Fa tokens
に適合するストリングか含まれない場合には、
\-1 を返します。
配列中のポインタの、0 始まりのオフセットを返します。
文字列にトークンが一切含まれない、または
.Fa tokens
中に適合する文字列が含まれない場合には \-1 を返します。
.Pp
トークンの形式が
``name=value''
である場合、
トークンの形式が ``name=value'' である場合、
.Fa valuep
で参照される位置は、トークンの
``値''
部分の開始を示すように設定されます。
で参照される先は、
トークンの ``value'' の部分の先頭を指すように設定されます。
.Pp
.Fn getsubopt
からの戻りでは
から戻った時
.Fa optionp
がストリングの次のトークンの開始を
示すように設定されます。または、それ以上のストリングがない場合には、
ストリングの終わりに
null
を示します。外部変数
が文字列の次のトークンの先頭を指すように設定されます。
または、それ以上のトークンがない場合には、
文字列の終わりの null を指します。
外部変数
.Fa suboptarg
は、現在のトークン
の開始を示すように設定されます。トークンがなかった場合は、
は、現在のトークンの先頭を指すように設定されます。
トークンがなかった場合は、
.Dv NULL
を示します。
となります。
引数
.Fa valuep
は、トークンの
``値''
部分を示すように設定されます。または、
``値''
部分がなかった場合は
は、トークンの ``value'' の部分を示すように設定されます。
または、``value'' 部分がなかった場合は
.Dv NULL
を示します。
.Sh
となります。
.Sh 使用例
.Bd -literal -compact
char *tokens[] = {
#define ONE 0
@ -145,11 +141,10 @@ while ((ch = getopt(argc, argv, "ab:")) != -1) {
.Ed
.Sh 関連項目
.Xr getopt 3
.Xr getopt 3 ,
.Xr strsep 3
.Sh 歴史
.Fn getsubopt
関数は
.Bx 4.4
最初に取り入れられました。
初めて登場しました。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)ieee.3 6.4 (Berkeley) 5/6/91
.\" %FreeBSD: src/lib/msun/man/ieee.3,v 1.5.2.2 2001/03/06 16:46:24 ru Exp %
.\" %FreeBSD: src/lib/msun/man/ieee.3,v 1.5.2.4 2001/08/17 15:43:08 ru Exp %
.\"
.\" $FreeBSD$
.Dd February 25, 1994
@ -52,19 +52,19 @@
.Nd IEEE 演算関数
.Sh 書式
.Fd #include <math.h>
.Ft double
.Ft double
.Fn copysign "double x" "double y"
.Ft float
.Ft float
.Fn copysignf "float x" "float y"
.Ft int
.Ft int
.Fn finite "double x"
.Ft int
.Ft int
.Fn finitef "float x"
.Ft int
.Fn ilogb "double x"
.Ft int
.Fn ilogbf "float x"
.Ft double
.Ft double
.Fn nextafter "double x" "double y"
.Ft float
.Fn nextafterf "float x" "float y"
@ -72,9 +72,9 @@
.Fn remainder "double x" "double y"
.Ft float
.Fn remainderf "float x" "float y"
.Ft double
.Ft double
.Fn scalbn "double x" "int n"
.Ft float
.Ft float
.Fn scalbnf "float x" "int n"
.Sh 解説
これらの関数は、
@ -113,7 +113,7 @@
.Fa n
乗を整数型で返します。
.Fn ilogb \*(Pm\*(If
.Fn ilogb \*(Pm\*(If
.Dv INT_MAX
を返し、
@ -122,7 +122,7 @@
.Dv INT_MIN
を返します。
.Pp
.Fn nextafter
.Fn nextafter
および
.Fn nextafterf
は、次のマシン表示可能な数を
@ -185,5 +185,3 @@
で登場しました。
.Sh 規格
.St -ieee754

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)ieee.3 6.4 (Berkeley) 5/6/91
.\" %FreeBSD: src/lib/msun/man/ieee_test.3,v 1.5.2.1 2000/12/29 14:45:07 ru Exp %
.\" %FreeBSD: src/lib/msun/man/ieee_test.3,v 1.5.2.3 2001/08/17 15:43:08 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 10, 1994
.Dt IEEE_TEST 3
.Os
.Os
.Sh 名称
.Nm logb ,
.Nm logbf ,
@ -46,13 +46,13 @@
.Nd IEEE テスト関数
.Sh 書式
.Fd #include <math.h>
.Ft double
.Ft double
.Fn logb "double x"
.Ft float
.Fn logbf "float x"
.Ft double
.Ft double
.Fn scalb "double x" "double n"
.Ft float
.Ft float
.Fn scalbf "float x" "float n"
.Ft double
.Fn significand "double x"
@ -87,14 +87,14 @@
.Fa x Ns \(**(2** Ns Fa n )
を返します。
.Pp
.Fn significand x
.Fn significand x
および
.Fn significandf x
.Fn significandf x
は、1 \(<=
.Fa sig
< 2 の範囲で
.Fa x
:=
.Fa x
:=
.Fa sig No \(** 2** Ns Fa n
となる時の、
.Fa sig
@ -110,5 +110,3 @@
.Xr math 3
.Sh 規格
.St -ieee754

View file

@ -32,21 +32,24 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)index.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/string/index.3,v 1.3.2.2 2001/07/22 12:06:49 dd Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt INDEX 3
.Os
.Sh 名称
.Nm index
.Nd 文字列中の文字位置の特定
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <string.h>
.Ft char *
.Fn index "const char *s" "int c"
.Sh 解説
.Fn index
関数はナル文字で終了する文字列
関数はナル文字で終了する文字列
.Fa s
から
.Fa c
@ -55,13 +58,13 @@
型に変換 ) に一致する最初の文字位置を調べます。
.Sh 戻り値
該当する文字が発見された場合、該当する文字へのポインタを返し、
見つからなければ
見つからなかった場合は
.Dv NULL
を返します。
.Fa c
が '\e0' のとき
が '\e0' の
.Fn index
は文字列の最後に位置する '\e0' を調べます。
は文字列の最後の '\e0' の位置を調べます。
.Sh 関連項目
.Xr memchr 3 ,
.Xr rindex 3 ,
@ -75,6 +78,6 @@
.Xr strtok 3
.Sh 歴史
.Fn index
関数は
関数は
.At v6
取り入れられました。
登場しました。

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/inet.3,v 1.8.2.3 2000/12/29 14:44:48 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/inet.3,v 1.8.2.7 2001/09/03 08:46:42 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 17, 1996
.Dt INET 3
.Os BSD 4.2
.Os
.Sh 名称
.Nm inet_aton ,
.Nm inet_addr ,
@ -54,11 +54,11 @@
.Fd #include <sys/socket.h>
.Fd #include <netinet/in.h>
.Fd #include <arpa/inet.h>
.Ft int
.Ft int
.Fn inet_aton "const char *cp" "struct in_addr *pin"
.Ft unsigned long
.Ft unsigned long
.Fn inet_addr "const char *cp"
.Ft unsigned long
.Ft unsigned long
.Fn inet_network "const char *cp"
.Ft char *
.Fn inet_ntoa "struct in_addr in"
@ -66,11 +66,11 @@
.Fn inet_ntop "int af" "const void *src" "char *dst" "size_t size"
.Ft int
.Fn inet_pton "int af" "const char *src" "void *dst"
.Ft struct in_addr
.Ft struct in_addr
.Fn inet_makeaddr "unsigned long net" "unsigned long lna"
.Ft unsigned long
.Ft unsigned long
.Fn inet_lnaof "struct in_addr in"
.Ft unsigned long
.Ft unsigned long
.Fn inet_netof "struct in_addr in"
.Sh 解説
.Fn inet_aton ,
@ -121,7 +121,7 @@
ポインタを返します。
この関数は現在
.Dv AF_INET
and
¤È
.Dv AF_INET6
に対して有効です。
.Pp
@ -224,7 +224,7 @@ a
.Fn inet_pton
関数は、
.St -xns5.2d2.0
.St -xns5.2
に適合しています。
.Fn inet_pton
関数は、1 個、2 個もしくは 3 個のドット形式のアドレスには

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)j0.3 6.7 (Berkeley) 4/19/91
.\" %Id: j0.3,v 1.6 1997/02/22 15:09:37 peter Exp %
.\"
.\" %FreeBSD: src/lib/msun/man/j0.3,v 1.8.2.2 2001/08/17 15:43:08 ru Exp %
.\" $FreeBSD$
.\"
.Dd April 19, 1991
.Dt J0 3
.Os BSD 4
.Os
.Sh 名称
.Nm j0 ,
.Nm j0f ,
@ -77,54 +77,59 @@
.Ft float
.Fn ynf "int n" "float x"
.Sh 解説
.Fn j0 ,
.Fn j0f ,
.Fn j1
および
関数
.Fn j0 ,
.Fn j0f ,
.Fn j1 ,
.Fn j1f
の各関数
は、それぞれ実数値
はそれぞれ実数値
.Fa x
に対して、
オーダー 0 、オーダー 1 の
第一種ベッセル関数
を計算します。
.Fn jn
に対して
0
.Em
.Fn jnf
関数は実数値
.Fa x
に対する整数オーダー
.Fa n
第一種ベッセル関数
を計算します。
.Pp
.Fn y0 ,
.Fn y0f ,
.Fn y1
.Fn y1f
の各関数は、正の実数値
.Fa x
に対する、
オーダー
0 とオーダー
1 の
線形独立な
第二種ベッセル関数
1
.Em 次の第一種ベッセル関数
を計算します。
関数
.Fn yn
.Fn ynf
の各関数は、正の実数値
.Fn jn ,
.Fn jnf
は実数値
.Fa x
に対する
整数オーダー
に対して
.Em 整数次
.Fa n
の第二種ベッセル関数を
計算します。
.Em の第一種ベッセル関数
を計算します。
.Pp
関数
.Fn y0 ,
.Fn y0f ,
.Fn y1 ,
.Fn y1f
は正の
.Em 実数
.Fa x
に対して、
線形独立な
0
.Em 次と
1
.Em 次の第二種ベッセル関数
を計算します。
関数
.Fn yn ,
.Fn ynf
は正の
.Em 実数
.Fa x
に対して
.Em 整数次
.Fa n
.Em の第二種ベッセル関数
を計算します。
.Sh 戻り値
これらの関数が正常終了すると、計算結果が返されます。
.Tn VAX
@ -132,21 +137,19 @@
.Tn Tahoe
アーキテクチャでは、
第二種ベッセル関数に対しては、
負またはゼロの
負または
0 の
.Fa x
はエラー
なります。
の値
はエラーになります。
グローバル変数
.Va errno
.Er EDOM
に設定されてリザーブ・オペランド・
フォールトが生成されます。
に設定されて予約オペランドフォルトが生成されます。
.Sh 関連項目
.Xr math 3
.Sh 歴史
この関数セットは
AT&T UNIX
バージョン
7 で取込まれました。
この一群の関数は
.At v7
で登場しました。

View file

@ -34,7 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)labs.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdlib/labs.3,v 1.4.2.2 2001/03/06 16:46:02 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
@ -43,6 +43,8 @@
.Sh 名称
.Nm labs
.Nd long integer の絶対値
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft long
@ -60,8 +62,8 @@
.Sh 規格
.Fn labs
関数は
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Pp
.Sh バグ
負の最大値の整数は負のままです。
負の最大値の整数は負のままです。

View file

@ -34,7 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ldiv.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdlib/ldiv.3,v 1.4.2.2 2001/03/06 16:46:02 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
@ -43,6 +43,8 @@
.Sh 名称
.Nm ldiv
.Nd 割り算での商と余りを返す
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft ldiv_t
@ -54,11 +56,11 @@
.Ar denom
について、
.Ar num/denom
の計算を実行し、商と余りを返します。戻り値は
の計算を実行し、商と余りを返します。
戻り値は
.Em long integer
変数の
.Ar quot
.Ar quot ,
.Ar rem
からなる
.Ar ldiv-t
@ -69,5 +71,5 @@
.Sh 規格
.Fn ldiv
関数は
.St -ansiC
準拠しています。
.St -isoC
適合しています。

View file

@ -33,12 +33,11 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93
.\" %FreeBSD: src/lib/libc/net/linkaddr.3,v 1.8.2.1 2000/04/22 17:06:08 phantom Exp %
.\"
.\" %FreeBSD: src/lib/libc/net/linkaddr.3,v 1.8.2.3 2001/08/17 15:42:38 ru Exp %
.\" $FreeBSD$
.Dd June 17, 1996
.Dt LINK_ADDR 3
.Os BSD 4.4
.Os
.Sh ̾¾Î
.Nm link_addr ,
.Nm link_ntoa

View file

@ -17,54 +17,54 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %Id: login_auth.3,v 1.5 1998/03/23 13:29:49 bde Exp %
.\"
.\" %FreeBSD: src/lib/libutil/login_auth.3,v 1.9.2.3 2001/08/17 15:43:07 ru Exp %
.\" $FreeBSD$
.\"
.Dd December 29, 1996
.Os FreeBSD
.Os
.Dt LOGIN_AUTH 3
.Sh 名称
.\" .Nm authenticate
.Nm auth_script
.Nm auth_env
.Nm auth_scan
.Nm auth_rmfiles
.Nm auth_checknologin
.\" .Nm auth_script
.\" .Nm auth_env
.\" .Nm auth_scan
.\" .Nm auth_rmfiles
.Nm auth_checknologin ,
.Nm auth_cat
.Nm auth_ttyok
.Nm auth_hostok
.\" .Nm auth_ttyok
.\" .Nm auth_hostok
.\" .Nm auth_timesok
.Nd ログインクラス受け入れデータベースの認証形式
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <login_cap.h>
.\" .Ft int
.\". Fn authenticate "const char *name" "const char *classname" "const char *style" "const char *service"
.Ft int
.Fn auth_script "const char * path" ...
.Ft void
.Fn auth_env "void"
.Ft int
.Fn auth_scan "int ok"
.Ft void
.Fn auth_rmfiles "void"
.\" .Ft int
.\" .Fn auth_script "const char * path" ...
.\" .Ft void
.\" .Fn auth_env "void"
.\" .Ft int
.\" .Fn auth_scan "int ok"
.\" .Ft void
.\" .Fn auth_rmfiles "void"
.Ft void
.Fn auth_checknologin "login_cap_t *lc"
.Ft int
.Fn auth_cat "const char *file"
.Ft int
.Fn auth_ttyok "login_cap_t *lc" "const char *tty"
.Ft int
.Fn auth_hostok "login_cap_t *lc" "const char *hostname" "char const *ip"
.\" .Ft int
.\" .Fn auth_ttyok "login_cap_t *lc" "const char *tty"
.\" .Ft int
.\" .Fn auth_hostok "login_cap_t *lc" "const char *hostname" "char const *ip"
.\" .Ft int
.\" .Fn auth_timesok "login_cap_t *lc" "time_t now"
.Sh 解説
この関数セットは、
.Xr login.conf 5
が提供するログインクラスの認証形式インタフェースをサポートします。
.Pp
.Sh 戻り値
.Pp
が提供するログインクラスの認証形式
インターフェスをサポートします。
.\" .Sh 戻り値
.Sh 関連項目
.Xr getcap 3 ,
.Xr login_cap 3 ,

View file

@ -17,32 +17,34 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %Id: login_cap.3,v 1.9 1998/06/06 05:50:42 jkoshy Exp %
.\"
.\" %FreeBSD: src/lib/libutil/login_cap.3,v 1.17.2.6 2001/08/17 15:43:07 ru Exp %
.\" $FreeBSD$
.\"
.Dd December 27, 1996
.Os FreeBSD
.Os
.Dt LOGIN_CAP 3
.Sh 名称
.Nm login_getclassbyname ,
.Nm login_close ,
.Nm login_getclass ,
.Nm login_getpwclass ,
.Nm login_getuserclass ,
.Nm login_getcapstr ,
.Nm login_getcaplist ,
.Nm login_getcaptime ,
.Nm login_getcapnum ,
.Nm login_getcapsize ,
.Nm login_getcapbool ,
.Nm login_getstyl
.Nd ログインクラスデータベース
に対するプログラミングインタフェース
.Nm login_getcaplist ,
.Nm login_getcapnum ,
.Nm login_getcapstr ,
.Nm login_getcapsize ,
.Nm login_getcaptime ,
.Nm login_getclass ,
.Nm login_getclassbyname ,
.Nm login_getpwclass ,
.Nm login_getstyle ,
.Nm login_getuserclass ,
.Nm login_setcryptfmt
.Nd ログインクラスケーパビリティデータベースをアクセスする関数
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <login_cap.h>
.Ft void
.Fn login_close "login_cap_t * lc"
.Fn login_close "login_cap_t *lc"
.Ft login_cap_t *
.Fn login_getclassbyname "const char *nam" "const struct passwd *pwd"
.Ft login_cap_t *
@ -67,63 +69,60 @@
.Fn login_getcapbool "login_cap_t *lc" "const char *cap" "int def"
.Ft char *
.Fn login_getstyle "login_cap_t *lc" "char *style" "const char *auth"
.Pp
.Ft const char *
.Fn login_setcryptfmt "login_cap_t *lc" "const char *def" "const char *error"
.Sh 解説
これらの関数は
.Xr login.conf 5
に備わっているログインクラスデータベース
に対するプログラミングインタフェースを表します。このデータベースに
収録されているのは、CAPABILITIES、属性およびデフォルト環境、
ユーザや特殊ユーザとしての稼動中のプログラムに対する課金上の設定などで、
に備わっているログインクラスデータベースに対する
プログラミングインタフェースを表します。
このデータベースに収録されているのは、
ケーパビリティ、属性およびデフォルト環境、ユーザや特殊ユーザとしての
稼動中のプログラムに対する課金上の設定などで、
.Pa /etc/master.passwd
の登録データ内のログインクラスフィールドに定義されています。
.Pp
.Xr login.conf 5
内のレコードは、コロン
.Ql \&:
で分離されるフィールドで
構成されています。各レコードの最初のフィールドはデータベース全体で一意な
レコードのための複数の識別子です。それぞれ '|' で分離されており、
で分離されるフィールドで構成されています。
各レコードの最初のフィールドは (データベース全体で一意な)
レコードのための 1 個以上の識別子です。それぞれ '|' で分離されており、
最後尾に 'name' 識別子が付いていることもあります。
レコードの残りのフィールドは keyword/data のペアで構成されます。
ロングラインは空のレコード内でバックスラッシュが後ろにつき
次の連続する行は随時読み取られるようになっています
このことは、キーワードが 2 つの意味にある文字に限定されないことを除けば
レコードの残りのフィールドはキーワード/データのペアで構成されます。
長い行は、空レコード内でバックスラッシュを後に付けることで継続可能であり
継続行は読み易さのためにインデントされているかもしれません
このことは、キーワードが 2 文字に限定されないことを除けば
.Xr termcap 5
で使用されている形式と類似しており、読み易すく改善されている点が利点です。
termcap レコードの場合と同様に、tc=<recordid>
が記述されているフィールドによって複数レコードを相互に
関連させることができます (レコードが包含関係にあります)。
.Aq Pa recordid
で示されるすべてのレコードは発生した箇所で tc= フィールドにより
置きかえられます。
CAPABILITIES データベースの形式と利用方法に関する詳細については、
termcap レコードの場合と同様に、tc=<recordid> が記述されているフィールド
によって複数レコードを相互に関連させることができます
(レコードが包含関係にあります)。
<recordid> で示されるすべてのレコードは発生した箇所で
tc= フィールドにより置きかえられます。
ケーパビリティデータベースの形式と利用方法に関する詳細については、
.Xr getcap 3
を参照してください。
.Pp
.Nm login_cap
インフェースには、tc= 参照の拡張により、
インフェースには、tc= 参照の拡張により、
ログインレコードクラスを取り出す便利な方法が備わっています。
プログラム要求により、
.Fn login_getclass ,
.Fn login_getpwclass ,
.Fn login_getuserclass
または
.Fn login_getuserclass ,
.Fn login_getclassbyname
のうちどれか 1 つを呼び
出して実行します。それぞれの関数はログイン CAPABILITIES 構造体
のうちどれか 1 つを呼び出して実行します。
それぞれの関数はログインケーパビリティ構造体
.Ft login_cap_t
を戻り値として返し、
API
の残りを使用して指定した値をデータベースに引き続き
を戻り値として返し、API の残りを使用して指定した値をデータベースに引き続き
問い合せするときに使用されます。
login_cap_t
が不要になった場合は、関数
login_cap_t が不要になった場合は、関数
.Fn login_close
の呼び出しを実行して使用していたリソースをすべて解放する
必要があります。
の呼び出しを実行して使用していたリソースをすべて解放する必要があります。
.Pp
login_cap_t の構造は login_cap.h で次のように定義されます。
login_cap_t の構造は
login_cap.h で次のように定義されます。
.Bd -literal -offset indent
typedef struct {
char *lc_class;
@ -133,8 +132,8 @@ typedef struct {
.Ed
.Pp
.Ar lc_class
メンバには取り出したログインクラスの名前に対するポインタ
があります。これは、
メンバには取り出したログインクラスの名前に対するポインタがあります。
これは、
.Fn login_getclass
または
.Fn login_getuserclass
@ -144,21 +143,25 @@ typedef struct {
.Fn login_getpwclass
を使用したユーザのログインレコード経由で間接的に
要求されたものと必ずしも同じではありません。参照されたユーザに
/etc/master.passwd
で定義されたログインクラスがない場合、クラス名は NULL
か空ストリングです。
.Pa /etc/master.passwd
で定義されたログインクラスがない場合、クラス名は
NULL か空文字列です。
また、定義されたクラスがデータベースに存在しない場合、
各関数は、'default' という ID のレコードを探索し、
各関数は、"default" という ID のレコードを探索し、
.Ar lc_class
フィールドにその名前を戻り値として取得します。
更に、参照されるユーザが UID 0 である場合
(通常 "root" ですが、ユーザ名は関係ありません)、
.Fn login_getpwclass
は、"default" という ID のレコードの前に、"root" という
ID のレコードを探します。
.Pp
.Ar lc_cap
フィールドは、ライブラリで内部的に使用され、
拡張されたログイン CAPABILITIES レコードを保持します。
プログラムからの例外要求では、低次の
拡張されたログインケーパビリティレコードを保持します。
例外的な要件のプログラムは、低次の
.Fn getcap
方式の関数とともにレコードを直接アクセスしようとしてこれを
使用する傾向があります。
方式の関数と共に使用して、レコードを直接アクセスしようとします。
.Pp
.Ar lc_style
フィールドに対しては、ログイン自身の操作プログラムからの
@ -168,19 +171,22 @@ typedef struct {
.Pp
前述したように、関数
.Fn get*class
は、CAPABILITIES データベースのマッチング
またはデフォルトレコードのアクセスに使用される login_cap_t オブジェクトを
戻り値として返します。
は、ケーパビリティデータベースの
マッチングまたはデフォルトレコードのアクセスに使用される
login_cap_t
オブジェクトを戻り値として返します。
.Fn getclassbyname
は 2 つの引数を受け取ります。
最初のものは取り出し対象レコードのレコード識別子で、
2 番めのものは、任意指定のディレクトリ名です。最初の引数
2 番めのものは、任意指定のディレクトリ名です。
最初の引数
.Ar name
が NULL か、空ストリング、
あるいは補助的なまたはシステムのログインクラスデータベースに
クラスが存在しない場合、システム
が NULL か、空文字列か、
あるいは
補助的なまたはシステムのログインクラスデータベースにクラスが存在しない場合、
システム
.Em デフォルト
レコードが代わりに返されてきます。
レコードが代わりに返されます。
2 番めの引数
.Ar dir
パラメータが NULL のとき、
@ -188,45 +194,50 @@ typedef struct {
NULL でないときは、
.Xr .login_conf 5
というファイル内で名前付きディレクトリが検索され、中にある
CAPABILITIES レコードがシステムデフォルトを上書きします。
この体系によりユーザは、'me' という IDのレコードがある
プライベートクラスに対するクラスレコードを生成して、
システムログインクラスデータベースのレコード
ケーパビリティレコードがシステムデフォルトを上書きします。
この体系によりユーザは、'me' という ID のレコードがある
プライベートクラスに対する
クラスレコードを生成して、システムログインクラスデータベースのレコード
におけるログイン設定値を上書きできます。
Login のコンテキストでは、次の 2 つの理由により、
.Em login
のコンテキストでは、次の 2 つの理由により、
ユーザが上書きできないオプションがあります。
第 1 に、リソース設定値やデフォルトのプロセス優先順位などの
多くのオプションでは、効果を発揮させるためにルート権限が必要であること
第 2 に、ユーザファイルの他のフィールドは
ログインの初期段階ではセキュリティや管理上の理由から、
十分な検討が行われていません。どの設定がユーザが
上書きできるのかについての詳細については、
第 1 に、
リソース設定値やデフォルトのプロセス優先順位などの多くのオプションでは、
効果を発揮させるために root 限が必要であること
第 2 に、ユーザファイルの他のフィールドは、ログインの初期段階ではセキュリティや
管理上の理由から、十分な検討が行われていません。
どの設定がユーザが上書きできるのかについての詳細については、
.Xr login.conf 5
を参照してください。実際には、これらは、そうでない場合に常に
初期起動シエルスクリプトで上書きされるユーザのデフォルトログイン環境に
よって明確に制限されます。ユーザの
を参照してください。
実際には、これらは、そうでない場合に常に初期起動
シェルスクリプトで上書きされるユーザのデフォルトログイン環境によって明確に
制限されます。
ユーザの
.Pa .login_conf
は、ログイン時、シエルが呼ばれる前に
実行される優先ログイン環境設定での簡便な方法をユーザに提供します。
は、ログイン時、
シェルが呼ばれる前に実行される優先ログイン環境設定での簡便な方法をユーザ
に提供します。
.Pp
指定レコードが NULL か、空または存在しないとき、さらに不測の事態に
指定レコードがNULL か、空または存在しないとき、さらに不測の事態に
備えてデフォルトレコードがシステムにない場合、メモリアロケーションエラー
になるか、あるいは
.Xr cgetent 3
が何らかの理由によりログイン CAPABILITIES データベースに
アクセスできなくなり、NULL を返してきます。
が何らかの理由によりログインケーパビリティデータベースにアクセスできなくなり、
NULL を返します。
.Pp
関数
.Fn login_getpwclass ,
.Fn login_getclass
および
.Fn login_getclass ,
.Fn login_getuserclass
で、ユーザパスワード登録情報に対応するログインクラスレコードの取り出し、
.Fn login_getclassbyname
呼び出しによるクラス名の取り出しができます。
処理が失敗した場合は NULL が返されます。これらの関数の間で、
処理が失敗した場合は NULL が返されます。
これらの関数の間で、
.Fn login_getuserclass
はユーザによる上書きが可能なユーザホームディレクトリ上の .login_conf
はユーザによる上書きが可能なユーザホームディレクトリ上の
.login_conf
を含んでいますが、
.Fn login_getpwclass
および
@ -234,95 +245,108 @@ Login
では、それへの参照を
.Pa /etc/login.conf
上のシステムログインクラスに制限している点で異なります。
上記に示したように、
.Fn login_getpwclass
.Fn login_getclass
と異なる唯一の点は、パスワードデータベースでの定義がないときに
ユーザルートをシステムルートとして認めていることです。
と異なる唯一の点は、
パスワードデータベースでの定義がないときに、
ユーザ 'root' をシステム "root" として認めていることです。
他方、パスワードのポインタが NULL のとき、
またはユーザレコードにログインクラスがない場合、
システムの「デフォルト」登録レコードの取得が行われます。
.Pp
プログラムで login_cap_t オブジェクトを使用する必要がなくなると、
プログラムで
login_cap_t
オブジェクトを使用する必要がなくなると、
.Fn login_close
呼び出しを実行し、ログインクラスで使用していたリソースを解放します。
呼び出しを実行し、ログインクラスで使用していたリソースを
解放します。
.Fn login_close
は NULL ポインタを返しますが、これには弊害はありません。
.Pp
残りの関数は、個別の権限レコードの取り出しに使用されます。各関数は、
login_cap_t オブジェクトを第 1 引数とし、
CAPABILITIES タグを第 2 引数とします。残りのパラメータは、
CAPABILITIES レコードが見つからないときの
デフォルトまたはエラー値を指定します。
受け渡されるパラメータの型は関連する CAPABILITIES のタイプによって
変わってきます。
たとえば、ストリング、リスト、時間値、ファイルやメモリサイズ、
パス (コロンで分離されたデイレクトリリストから構成される)、
またはバイナリ値フラグなどです。
ケーパビリティタグを第 2 引数とします。
残りのパラメータは、ケーパビリティレコードが見つからないときの
デフォルトまたはエラー値を指定します。受け渡しされるパラメータの型は
関連するケーパビリティのタイプによって変わります。たとえば、
文字列、リスト、時間値、ファイルやメモリサイズ、パス (コロンで
分離されたディレクトリリストから構成される)、またはバイナリ値フラグ
などです。
.Pp
このグループのすべての関数では、ポインタを返すとき
.Xr free 3
を使用できないことに注意してください。
検索や CAPABILITIES タグ処理の間に割り当てられたメモリは、
後続するこのグループの関数呼び出しで自動的に再利用されるか、
または
び出しを使用できないことに注意してください。検索や
ケーパビリティタグ処理の間に
割り当てられたメモリは、後続するこのグループの関数呼び出しで自動的に
再利用されるか、または
.Fn login_close
呼び出しで解除されます。
.Bl -tag -width "login_gatcaplist()"
.Fn login_getcapstr
この関数は、単純ストリング CAPABILITIES を返します。
ストリングが見つからないとき、
この関数は、単純文字列ケーパビリティを返します。
文字列が見つからないとき、
.Ar def
内の定義値がデフォルト値として返されます。エラーが発生したとき、
内の定義値がデフォルト値として
返されます。エラーが発生したとき、
.Ar error
パラメータの値が返されます。
.Pp
.It Fn login_getcaplist
この関数は、名前付き CAPABILITY タグの値を NULL で
終了する配列の値リストとして返します。ログインクラスデータベースには、
本関数は、名前付きケーパビリティタグの値を
NULL で終了する配列の値リストとして返します。ログインクラスデータベースには、
リストタイプのタグがあり、複数のカンマまたはスペースで分離した値で
構成されています。通常、この関数は直接アプリケーションから
呼び出されることはなく、
構成されています。通常、この関数は直接アプリケーションから呼び
出されることはなく、
.Fn login_getstyle
経由で間接的に使用されます。
.Pp
.It Fn login_getpath
この関数は、コロン
.Ql \&:
で分離されたディレクトリリストを返します。
この関数の呼出しが実行される CAPABILITY タグはスペースで分離された
デイレクトリリストで構成されます。
この関数は、
.Ql &:
で分離されたディレクトリリストを
返します。
この関数の呼び出しが実行される
ケーパビリティタグはスペースで分離されたディレクトリリストで構成されます。
.Pp
.It Fn login_getcaptime
この関数は、時、分、秒 (デフォルト)、年 (365 日基準)、週、
あるいはこれらの任意の組み合わせで表される値の特殊な
CAPABILITY タグに関連する時間値を返します。
接尾語により使用される単位を決定します。
S は秒を、M は分を、H は時を、D は日を、W は週を表し、
Y は 365 日基準による年を表します。
この関数は、時、分、秒 (デフォルト)、年 (
365 日基準)、週、あるいはこれらの任意の組み合わせで表される値の特殊な
ケーパビリティ
タグに関連する時間値を返します。接尾語により使用される単位を
決定します。
S は秒を、M は分を、H は時を、D は日を、W は週を表し、Y は
365 日基準による年を表します。
単位接尾語では大文字、小文字の区別はありません。
.Pp
時間値は、通常はリソースの設定値、課金システム、およびセッション制限値に
使用されます。オペレーティングシステムやコンパイラ (FreeBSD 対応) で
使用されます。オペレーティングシステムやコンパイラ (
.Fx
対応) で
サポートしている場合、戻り値は 2 次元 (long long) の
.Em rlim_t
型になります。値 "inf" または "infinity" で無限の値を表せます。
その場合 RLIM_INFINITY が戻り値となります。
型になります。値 'inf' または 'infinity' で無限の値を表せます。
その場合
RLIM_INFINITY
戻り値となります。
.Pp
.It Fn login_getcapnum
この関数は、タグに関する数値を返します。数値は、
tag=<value> または標準的な
.Fn cgetnum
書式 tag#<value> で表現されます。
書式 tag#<value>
で表現されます。
最初の書式は 2 番目のものより優先的に使用されます。
2 番めの書式は、
.Xr getcap 3
データベースの書式との互換性と整合性があり、数値タイプの場合、
数値のデリミタとして
.Ql \&#
が使われます。最初の書式の場合、指定される値は "inf"
または "infinity" で、戻り値は RLIM_INFINITY になります。
指定された CAPABILITY タグを見つけることができない場合、
が使われます。最初の書式の場合、指定される値は
\&'inf' または 'infinity' で、戻り値は RLIM_INFINITY
になります。指定された ケーパビリティタグを見つけることができない場合、
.Ar def
パラメータが返されます。
エラーが起きると、
@ -331,61 +355,88 @@ tag=<value>
.Pp
.It Fn login_getcapsize
.Fn login_getcapsize
は、サイズ(ファイルまたはメモリの場合)を表す値を、
バイト数デフォルト、512 バイトのブロック数、
KB,MB,GB
は、サイズ(ファイルまたは
メモリの場合)を表す値を、バイト数(デフォルト)、
512 バイトのブロック数、
KB,
MB,
GB
表示で返します。また
.Ar long long
タイプをサポートしているシステムであれば、
TB 表示もあります。使用されている接尾語により単位、複合値を
タイプをサポートしているシステム
であれば、
TB
表示もあります。使用されている接尾語により単位、複合値を
決定し、単位は組み合せた形で使用されます。(例えば、
1m500k = 1.5megabytes) 接尾語がない値 A はバイトを、
B は 512 バイトブロックを、
K は kilobyte を、
M は megabyte を、
G は gigabyte を、
そして T は terrabyte を表します。
K は KB を、
M は MB を、
G は GB を、
そして
T
は TB を表します。
大文字と小文字の区別はありません。エラー値が返ってくるのは、
ログイン CAPABILITIES データベースエラーがあるか、
ログインケーパビリティデータベースエラーがあるか、
間違った接尾語が使用されているか、または数値が変換ができない場合です。
.Pp
.It Fn login_getcapbool
この関数は、特定のフラグに関連したバイナリ値を返します。
指定された CAPABILITY タグがないか、
"tag@" (boolean フラグの詳細については
この関数は、特定のフラグに関連したバイナリ値を返します。指定された
ケーパビリティタグがないか、
\&'tag@'(boolean フラグの詳細については
.Xr getcap 3
を参照) により無効にされているとき、0 が返ってきます。
を参照) により無効にされているとき、0 が返ます。
タグが見つかれば 1 が返ります。
.Pp
.It Fn login_getstyle
この関数は、ログイン認可システムで使用され、特定の
ケースで有効なログインの形式を決定します。
関数は、3 つのパラメータと、
ケースで有効なログインの形式を決定します。関数は、
3 つのパラメータと、
.Nm login_cap
登録レコードそのもの、および 2 つの任意指定パラメータ、'auth'
と 'style' の認可タイプを受け取り、
これらを用いてこれらのルールと矛盾しない認可スタイルを決定します。
登録レコードそのもの、および 2 つの任意指定パラメータ、
\&'auth'
\&'style'
の認可タイプを受け取り、これらを用いてこれらのルールと矛盾しない
認可スタイルを決定します。
.Pp
.Bl -bullet -indent offset
.Bl -bullet
.It
.Ql auth
が NULL または 空ストリングでなければ、CAPABILITY レコードの
"auth-<auth>" タイプのタグの検索を行います。
存在しなければ、デフォルトのデフォルトタグ "auth=" を検索します。
\&'auth' が NULL または 空文字列でなければ、
ケーパビリティレコードの "auth-<auth>" タイプのタグの検索を行います。
存在しなければ、デフォルトの
デフォルトタグ "auth="
を検索します。
.It
先のステップで正当な認可リストが見つからない場合、"passwd"
先のステップで正当な認可リストが見つからない場合、
\&'passwd'
がデフォルトの認可リストとされます。
.It
.Ql style
が NULL でも空でもないとき、先行ステップで見つかった認可方式の
\&'style' が NULL でも
空でもないとき、先行ステップで見つかった認可方式の
リストからそれを検索します。
.It
.Ql style
が NULLか空ストリングのとき、"passwd"をデフォルトの認可に使用します。
\&'style' が NULL か空文字列のとき、
\&'passwd'
をデフォルトの認可に使用します。
.It
.Ql style
が、認可方式の選択リストに見つかった場合、それを返し、
\&'style' が、認可方式の選択リストに見つかった場合、それを返し、
そうでないときは NULL を返します。
.It Fn login_setcryptfmt
.Xr crypt 3
書式の設定のために、
.Ql passwd_format
設定エントリを使用し、
.Fn login_setcryptfmt
関数が使用されます。
エントリが見付からない場合、
.Fa def
がフォールバックとして使用されます。
指定した引数の
.Xr crypt_set_format 3
が失敗すると、
.Fa error
が返されます。
.El
.Pp
この体系により、管理者は、アクセス方式に従って、システムが受け取る
@ -396,6 +447,7 @@ G
発見されるリスクを著しく減少させられます。
.El
.Sh 関連項目
.Xr crypt 3 ,
.Xr getcap 3 ,
.Xr login_class 3 ,
.Xr login.conf 5 ,

View file

@ -17,18 +17,20 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %Id: login_class.3,v 1.6 1998/06/06 05:50:43 jkoshy Exp %
.\"
.\" %FreeBSD: src/lib/libutil/login_class.3,v 1.9.2.2 2001/08/17 15:43:07 ru Exp %
.\" $FreeBSD$
.\"
.Dd December 28, 1996
.Os FreeBSD
.Os
.Dt LOGIN_CLASS 3
.Sh 名称
.Nm setclasscontext ,
.Nm setusercontext ,
.Nm setclassenvironment ,
.Nm setclassresources ,
.Nm setclassenvironment
.Nm setusercontext
.Nd ログインクラスデータベースにアクセスする能力をもつ関数群
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <login_cap.h>
@ -40,11 +42,10 @@
.Fn setclassresources "login_cap_t *lc"
.Ft void
.Fn setclassenvironment "login_cap_t *lc" "const struct passwd *pwd" "int paths"
.Pp
.Sh 解説
これらの関数は、ログインクラスデータベース関して
.Xr login_cap 3
のマニュアルに記載されているインタフェスより高次のインタフェスを
のマニュアルに記載されているインタフェスより高次のインタフェスを
提供します。これらの関数が使用されるのは、リソースに関する限界値や、
環境およびシステムにログインするユーザへの課金の設定、およびログインクラス
に基づくシステムデーモンの設定と環境の適切な組を設定するときです。これらの
@ -62,7 +63,7 @@
.Pp
.Fn setusercontext
は、指定された login_cap_t オブジェクト、
指定された passwd レコード (login_cap_t が nullの場合)
指定された passwd レコード ( login_cap_t が nullの場合)
に基づく、クラスのコンテキストバリューを設定します。
また最新のセッションへのログインや、
最新のプロセスのユーザおよびグループの所有者を設定します。
@ -97,9 +98,8 @@ passwd
NULL 以外の値を指定する必要があります。
.It LOGIN_SETRESOURCES
システムのログインクラスデータベースで定義される
設定値に基づき現在のプロセスのリソースの限界値を設定します。
クラス権限タグは、-cur (ソフトリミット)
または -max (ハードリミット) の接尾語と次に示す
設定値に基づき現在のプロセスのリソースの限界値を設定します。クラス権限タグ
は、-cur (ソフトリミット) または -max (ハードリミット)の接尾語と次に示す
リソース設定子を適切に組み合わせて使用します。
.Bd -literal
cputime RLIMIT_CPU
@ -111,6 +111,7 @@ memoryuse RLIMIT_RSS
memorylocked RLIMIT_MEMLOCK
maxproc RLIMIT_NPROC
openfiles RLIMIT_NOFILE
sbsize RLIMIT_SBSIZE
.Ed
.It LOGIN_SETPRIORITY
システムのログインクラスデータベースで定義された
@ -127,9 +128,10 @@ Priority
umask
.Ed
.It LOGIN_SETPATH
ユーザまたはシステムのログインクラスデータベースに基づく
値を "path" および "manpath" 環境変数に設定します。
該当する環境変数セットとともに使用されるクラス権限タグは次のとおりです。
ユーザまたはシステムのログインクラスデータベースに基づく値を
\&'path' および 'manpath'
環境変数に設定します。該当する環境変数
セットとともに使用されるクラス権限タグは次のとおりです。
.Bd -literal
path PATH
manpath MANPATH
@ -146,7 +148,7 @@ term TERM
.Ed
.Pd
環境変数の追加として、リスト型の
権限設定 "setenv=var1 val1,var2 val2..,varN valN "
権限設定 'setenv=var1 val1,var2 val2..,varN valN '
を使用できます。
.It LOGIN_SETALL
上記の設定をすべて可能にします。
@ -163,10 +165,10 @@ term TERM
.Pp
関数
.Fn setclassresources
および
.Fn setclassenvironment
は、上記コンテキスト設定の関数のサブセットですが、
単独でも使用できます。
は、上記コンテキスト設定の関数の
サブセットですが、単独でも使用できます。
.Sh 戻り値
.Fn setclasscontext
および

View file

@ -17,17 +17,19 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %Id: login_ok.3,v 1.4 1997/02/22 15:08:22 peter Exp %
.\"
.\" %FreeBSD: src/lib/libutil/login_ok.3,v 1.7.2.3 2001/08/17 15:43:07 ru Exp %
.\" $FreeBSD$
.\"
.Dd January 2, 1997
.Os FreeBSD
.Os
.Dt LOGIN_OK 3
.Sh 名称
.Nm auth_ttyok
.Nm auth_hostok
.Nm auth_ttyok ,
.Nm auth_hostok ,
.Nm auth_timeok
.Nd ログイン制約に基づくログインクラス・チェック用関数
.Nd ログイン制約に基づくログインクラスのチェック用関数
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <time.h>
@ -53,7 +55,7 @@
.Em ttys.allow
アクセスリストに載っており、
.Em ttys.deny
アクセスリストに載っていないこともチックします。
アクセスリストに載っていないこともチックします。
.Ar tty
デバイス経由でくるログインは、
.Em ttys.allow
@ -62,9 +64,9 @@
.Em ttys.deny
リストが存在しない限り、またはデバイスあるいは
.Ar tty
グループ (
グループ(
.Xr ttys 5
を参照のこと) がリストに載っていなければ、受入れられます。
を参照のこと)がリストに載っていなければ、受入れられます。
.Ar tty
に対するアクセスは、
.Ar tty
@ -89,16 +91,15 @@ ttys
のログインクラスの権限レベルに対し、ホスト名や IP アドレス
(具体的には n.n.n.n のようなテキスト形式で指定されます。)
の両方のチエックを行います。
ttys およびそのグループについてと同様、許可、非許可権限レコード内で
ワイルドカードや文字クラスを使用できます。
関数
ttys およびそのグループについてと同様、許可、
非許可権限レコード内でワイルドカードや文字
クラスを使用できます。関数
.Xr fnmatch 3
は対応付けに使用されます。
ホスト名の対応付けは大文字か小文字かによります。
この関数ではホスト名が完全形式で記述 (たとえば、必要ならば
ローカルドメイン名が追加される) されている必要があることに
注意する必要があります。さらに、IP アドレスは標準的な形式に
なっています。ホスト名やアドレス参照は行われません。
は対応付けに使用されます。ホスト名の
対応付けは大文字か小文字かによります。この関数ではホスト名が完全形式で
記述 (たとえば、必要ならばローカルドメイン名が追加される) されている
必要があることに注意する必要があります。さらに、IP アドレスは標準的な
形式になっています。ホスト名やアドレス参照は行われません。
.Pp
この関数の呼び出しは、ホスト名を使用するか、または IP アドレスを
指定せず (例えば
@ -108,6 +109,7 @@ ttys
.Dv NULL
か空の文字列が渡された場合、0 以外の戻り値が返されます。
.Pp
関数
.Fn auth_timeok
は、指定の時間値が、ログインクラス
.Em times.allow

View file

@ -17,17 +17,19 @@
.\" 5. Modifications may be freely made to this file providing the above
.\" conditions are met.
.\"
.\" %Id: login_times.3,v 1.4 1997/02/22 15:08:26 peter Exp %
.\"
.\" %FreeBSD: src/lib/libutil/login_times.3,v 1.8.2.4 2001/08/17 15:43:07 ru Exp %
.\" $FreeBSD$
.\"
.Dd January 2, 1997
.Os FreeBSD
.Os
.Dt LOGIN_TIMES 3
.Sh 名称
.Nm parse_lt
.Nm in_ltm
.Nm parse_lt ,
.Nm in_ltm ,
.Nm in_ltms
.Nd ログイン時間帯のチェックと解析を行う関数
.Nd ログイン時間帯のチエックおよび解析を行う関数
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <time.h>
@ -49,16 +51,18 @@
.Ar times.deny
権限フィールドで定義された許可、非許可セッション時間の形式は、
1 桁または 2 ,3 桁以上の文字の日付コードを定義する接頭語で構成されます。
1 桁または
2, 3 桁以上の文字の日付コードを定義する接頭語で構成されます。
ハイフンで分離される 24 時形式の開始、終了時間がそれに続きます。
日付コードは、特定の日付を選択するために接合されるか、または
"Any" や "All"(任意の曜日またはすべての曜日) や、
曜日指定 (土曜日と日曜日を含む) のための "Wk"、週末を表す "Wd"
\&'Any' や 'All' (任意の曜日またはすべての曜日) や、
曜日指定 (土曜日と日曜日を含む) のための 'Wk'、
週末を表す 'Wd'
などの、特殊な表記記号も使用することができます。
.Pp
時間帯はたとえば次のとおりです。
.Dl MoThFrSa1400-2200
これは、月、木、金、土曜日の午後 2 時から
これは、月曜日、木曜日、金曜日、土曜日の午後 2 時から
10 時の間と解釈されます。
.Dl Wd0600-1800
これは、土曜日と日曜日の午前 6 時から午後 6 時までの意味です。
@ -69,7 +73,7 @@
.Pp
関数
.Fn parse_lt
は、アスキー表示の時間帯を
は、ASCII 表示の時間帯を
.Ft login_time_t
タイプの構造に変換します。
定義は次のとおりです。
@ -107,11 +111,12 @@ typedef struct login_time
.Ar login_time_t
を返した場合、構文解析エラーがあります。
.Pp
残りの関数により、指定された time_t
残りの関数により、指定された
time_t
または特別な時間帯または時間帯の配列に対する構造体 tm をテストできます。
.Fn in_ltm
により、第 2 パラメータとして渡された構造体 tm で指定された時間が
1 パラメータで定義された時間内にあるかどうか決定します。
により、第 2 パラメータとして渡された構造体 tm で指定された時間が
1 パラメータで定義された時間内にあるかどうか決定します。
.Pp
指定の時間が時間帯内にあるかどうかをバイナリ型の戻り値で返します。
時間が所定の時間帯になく、関数の第 3 パラメータが NULL でなければ、
@ -125,7 +130,7 @@ typedef struct login_time
オブジェクトの配列のポインタでなければならないという点は
異なります。なお配列は、要素数が LC_MAXTIMES (64)
で上限が規定されており、
.Em LTM_NON
.Em LTM_NONE
が設定された
.Ar lt_dow
フィールドにより終端が規定されています。
@ -139,7 +144,7 @@ typedef struct login_time
(すなわち 0) が設定されます。
.Pp
.Fn in_ltm
は、指定された時間が第パラメータとして渡された login_time_t
は、指定された時間が第 1 パラメータとして渡された login_time_t
で定義した時間帯内にあれば、0 以外の値を返します。
.Pp
.Fn in_ltms

View file

@ -23,37 +23,33 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: login_tty.3,v 1.4 1997/02/22 15:08:27 peter Exp %
.\" "
.\" %FreeBSD: src/lib/libutil/login_tty.3,v 1.5.2.2 2001/07/22 12:07:18 dd Exp %
.\" $FreeBSD$
.\" "
.Dd December 29, 1996
.Os
.Dt LOGIN_TTY 3
.Sh 名称
.Nm login_tty
.Nd 新規ログインセッションの tty 準備
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <libutil.h>
.Ft int
.Fn login_tty "int fd"
.Pp
Link with
.Va -lutil
on the
.Xr cc 1
command line.
.Sh 解説
関数
.Fn login_tty
は、新規ログインセッションの端末を準備します。
.Fn login_tty
に渡されたファイル記述
に渡されたファイル指示子
.Ar fd
は端末デバイス上で、読み込みや書き込みが可能である必要があります。
.Xr setsid 2
により新規セッションが割り当てられた後、
呼び出しプロセスの制御デバイスが作られます。この端末デバイスは更に、
呼び出しプロセスでの標準入力や標準出力、および標準エラー出力になります。
呼び出しプロセスでの標準入力や出力、及び標準エラー出力になります。
.Sh 戻り値
.Fn Login_tty
は、呼び出しプロセスの制御デバイス

View file

@ -23,26 +23,21 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: logout.3,v 1.5 1997/05/11 08:50:32 davidn Exp %
.\" "
.\" %FreeBSD: src/lib/libutil/logout.3,v 1.6.2.3 2001/07/22 12:07:18 dd Exp %
.\" $FreeBSD$
.\" "
.Dd December 29, 1996
.Os
.Dt LOGOUT 3
.Sh 名称
.Nm logout
.Nd utmpファイルからの登録の削除
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <libutil.h>
.Ft int
.Fn logout "char *line"
.Pp
Link with
.Va -lutil
on the
.Xr cc 1
command line.
.Fn logout "const char *line"
.Sh 解説
関数
.Fn logout
@ -53,7 +48,7 @@ command line.
ファイルを探索します。スロットがみつからない場合は、
.Em name
及び
.Em host
hos
フィールドが空のレコードで更新され、
タイムスタンプは最新時間に更新されます。
.Sh 戻り値
@ -69,6 +64,6 @@ command line.
.Xr wtmp 5
.Sh バグ
.Fn logout
の呼び出しインタフェスは
の呼び出しインタフェスは
.Xr login 3
のインタフェースと整合性がとれていません。

View file

@ -23,26 +23,22 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: logwtmp.3,v 1.6 1998/01/16 16:53:30 bde Exp %
.\" "
.\" %FreeBSD: src/lib/libutil/logwtmp.3,v 1.7.2.3 2001/11/02 00:58:18 yar Exp %
.\" $FreeBSD$
.\" "
.Dd December 29, 1996
.Os
.Dt LOGWTMP 3
.Sh 名称
.Nm logwtmp
.Nd wtmp ファイルに新規レコードを追加
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <libutil.h>
.Ft void
.Fn logwtmp "const char *line" "const char *name" "const char *host"
.Pp
Link with
.Va -lutil
on the
.Xr cc 1
command line.
.Sh 解説
.Fn logwtmp
は、
@ -50,8 +46,7 @@ command line.
ファイルに新規レコードの追加します。
引数は、
.Ar line ,
.Ar name
.Ar name ,
.Ar host
及び現在時間を与えます。
.Pp
@ -65,10 +60,11 @@ command line.
.Qq invalid hostname
(不正ホスト名) として記録されます。
.Pp
呼び出しプロセスは読み込み、書き込みの両方の権限を持っている
必要があります。
呼び出しプロセスは、
.Xr wtmp 5
ファイルに対し、読み込み、書き込みの両方の権限を持っている必要があります。
.Sh 戻り値
なし
なし
.Sh 関連項目
.Xr gethostbyname 3 ,
.Xr login 3 ,

View file

@ -34,15 +34,17 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)malloc.3 8.1 (Berkeley) 6/4/93
.\" %Id: malloc.3,v 1.17 1998/09/16 04:07:31 imp Exp %
.\"
.\" %FreeBSD: src/lib/libc/stdlib/malloc.3,v 1.25.2.13 2001/11/12 01:11:15 dd Exp %
.\" $FreeBSD$
.\"
.Dd August 27, 1996
.Dt MALLOC 3
.Os FreeBSD 2
.Os
.Sh 名称
.Nm malloc, calloc, realloc, free, reallocf
.Nm malloc , calloc , realloc , free , reallocf
.Nd 汎用のメモリ割り当てのための関数群
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft void *
@ -70,7 +72,15 @@
.Xr getpagesize 3
参照 )、返されるメモリはページ境界が調整されていることでしょう。
.Fn malloc
に失敗すると、 NULL ポインタが返されます。
に失敗すると、
.Dv NULL
ポインタが返されます。
.Pp
通常
.Fn malloc
が返すメモリは、0 のバイトで初期化されては
.Em いない
ことに注意してください。
.Pp
.Fn calloc
関数は、
@ -78,9 +88,8 @@
個の、長さが
.Fa size
であるオブジェクトに空間を割り当てます。
この関数を呼び出した結果は、割り当てられたメモリがナルに
初期化されていることを除けば、
引数
この関数を呼び出した結果は、割り当てられたメモリが 0 のバイトに
明示的に初期化されていることを除けば、引数
.Dq "number * size"
.Fn malloc
@ -92,16 +101,19 @@
で参照される、以前に割り当てられたメモリのサイズを
.Fa size
バイトに変更します。
メモリの内容は、新しいサイズと古いサイズのうち
小さい方のサイズまでは変化しません。
新しいサイズと古いサイズのうち
小さい方のサイズまでのメモリ内容は変更されません。
新しいサイズの方が大きい場合、
新しく割り当てられた部分のメモリの値は未定義です。
要求されたメモリを割り当てることができなかった場合は
NULL が返されますが、
.Dv NULL
が返されますが、
.Fa ptr
が参照するメモリは有効で変化しません。
が参照するメモリは有効で変更されていません。
.Fa ptr
が NULL である場合、
.Dv NULL
である場合、
.Fn realloc
関数は、指定したサイズの
.Fn malloc
@ -112,7 +124,9 @@ NULL
渡されたポインタを解放することを除けば、
.Fn realloc
関数呼び出しと同じです。
これは FreeBSD に固有の API で、
これは
.Fx
に固有の API で、
.Fn realloc
の従来型のコーディングスタイルを用いると、
ライブラリの内部でメモリリークを引き起こすという
@ -124,7 +138,9 @@ NULL
で参照される割り当て済みのメモリを
今後の割り当てのために使用できるようにします。
.Fa ptr
が NULL である場合、何も実行されません。
.Dv NULL
である場合、何も実行されません。
.Pp
.Sh 調整
これらのメモリ割り当てルーチン群の 1 つが初めて呼び出されるときに、
@ -147,11 +163,11 @@ NULL
.Bl -tag -width indent
.It A
すべての警告
( 理解できないフラグが設定されているという警告を除く )
およびメモリ割り当ての失敗を致命的エラーにします。
( 理解できないフラグが設定されているという警告を除く )
致命的エラーにします。
この場合、プロセスは
.Fn abort 3
呼び出します。
.Xr abort 3
呼び出します。
.It J
.Fn malloc ,
.Fn realloc ,
@ -166,8 +182,8 @@ NULL
オプションもセットします。
これはデバッグ用のオプションで、パフォーマンスの低下に強い影響を与えます。
.It H
割り当て関数で使用されないページに関するヒントをカーネルに与えます。
システムが過度にページングを行っている場合はパフォーマンスが向上します。
割り当て関数で使用されないページに関するヒントをカーネルに与えます。
システムが過度にページングを行っている場合はパフォーマンスが向上します。
このオプションは、デフォルトでオフになっています。
.It R
最初の割り当てが十分に大きい場合であっても、
@ -185,9 +201,11 @@ NULL
エントリを生成します。
このオプションの詳細については、ソースを参照してください。
.It V
ゼロバイトを割り当てようとしたときに、
有効なポインタの代わりに NULL ポインタが返されるようになります。
( デフォルトの動作では、最小の割り当てを行なってそのポインタを返します。 )
0 バイトを割り当てようとしたときに、
有効なポインタの代わりに
.Dv NULL
ポインタが返されるようになります
( デフォルトの動作では、最小の割り当てを行って、そのポインタを返します )。
このオプションは System V との互換性のために提供されています。
このオプションは
.Dq X
@ -212,10 +230,10 @@ malloc_options = "X";
オプションと
.Dq R
オプションが
設定され、要求されたバイト列にゼロが出力されます。
設定され、要求されたバイト列に 0 が出力されます。
これはデバッグ用のオプションで、パフォーマンスの低下に強い影響を与えます。
.It <
キャッシュサイズ 2 分の 1 にします。
キャッシュサイズ 2 分の 1 にします。
デフォルトのキャッシュサイズは 16 ページです。
このオプションは複数回指定できます。
.It >
@ -246,52 +264,68 @@ malloc_options = "X";
.Ed
.Sh 環境変数
以下の環境変数は、メモリ割り当て関数の実行に影響を与えます。
.Bl -tag -width MMM
.Bl -tag -width ".Ev MALLOC_OPTIONS"
.It Ev MALLOC_OPTIONS
環境変数
.Ev MALLOC_OPTIONS
を設定すると、この環境変数に含まれる文字は、
メモリ割り当て関数群のフラグとして解釈されます。
.El
.Sh 戻り値
.Fn malloc
関数と
.Fn calloc
関数は、成功した場合は割り当てられたメモリのポインタを返し、
それ以外の場合は NULL ポインタを返します。
関数は、成功した場合は割り当てられたメモリへのポインタを返し、
それ以外の場合は
.Dv NULL
ポインタを返し
.Va errno
.Er ENOMEM
に設定します。
.Pp
.Fn realloc
関数と
.Fn reallocf
関数は、成功した場合は
関数は、成功した場合はもしかしたら
.Fa ptr
と同一の、割り当てられたメモリのポインタを戻します。
それ以外の場合は NULL ポインタを返します。
と同一の、割り当てられたメモリへのポインタを返します。
それ以外の場合は
.Dv NULL
ポインタを返します。
その場合でも
.Fa ptr
によって参照されるメモリは利用可能でそのまま残ります。
メモリの割り当てに失敗した場合は、
.Va errno
.Er ENOMEM
に設定します。
.Pp
.Fn free
関数は値を返しません。
.Pp
.Sh MALLOC の問題のデバッグ
この実装は、解放されているページには、割り当てられていない限り
アクセスされず、再利用のためにカーネルに積極的に返されるという点が、
この実装は、
割り当てられていない限り解放されているページはアクセスされず、
再利用のためにカーネルに積極的に返されるという点が、
他 ( のシステム ) のメモリ割り当ての実装と大きく異なります。
.Bd -filled -offset indent
.Bd -ragged -offset indent
ほとんど ( のシステム ) のメモリ割り当ての実装では、
リンクドリストを含んだデータ構造が、
解放されているメモリのかたまりの中に保存され、
解放されているすべてのメモリを互いに結合するために使用されます。
解放リストが横切るたびに、
未使用のはずの、ページアウトされているようなページが、
解放リストを行き来するたびに、
未使用の、ページアウトされているであろうページが、
プライマリメモリに入るためにページフォルトを起こすため、
これは最適とは言えません。
ページングを行うシステムでは、
ページングを行うシステムでは、
一つのプロセスによって生じるページフォルトの数が
5 倍に増加する結果となることがあります。
.Ed
.Pp
このアーキテクチャには、これまでは検出されなかったインタフェースの
細々とした違反が実際に検出されるようになるという副作用があります。
このアーキテクチャには、これまでは検出されなかったインタフェースの
細々とした違反が実際に検出されるようになるという副作用があります。
このため、ずっと問題なく動いていたプログラムが、この割り当ての実装と
リンクしたとたんに問題が続出することがあります。
.Pp
@ -299,7 +333,7 @@ malloc_options = "X";
.Dq A
オプションを設定することです。
このオプションを設定すると、
できるだけ処理を継続しようとする通常の方針をとるかわりに
できるだけ処理を継続しようとする通常の方針をとるかわりに
問題が発生したときに (可能であれば) コアダンプを強制的に取ります。
.Pp
デバッガのサポートのために、
@ -308,13 +342,13 @@ malloc_options = "X";
.Pp
プログラムが、通常とは異なる結果を出したり、コアダンプしたり、
次のセクションで挙げるようなメッセージを出さずに
違ったふるまいをし始めるような場合は、
プログラムがナルバイトで満たされている記憶領域に依存している場合だと
違った動作をし始めるような場合は、
プログラムが 0 のバイトで満たされている記憶領域に依存している場合だと
思われます。
.Dq Z
オプションを設定して実行してみてください。
状況が好転した場合は、この診断が正しかったことになります。
これでもプログラムがおかしなふるまいをするようなら、
これでもプログラムがおかしな動作をするようなら、
割り当てられた領域以外のメモリ、
大抵は割り当てられた領域の前方ではなく後方にアクセスするという問題だと
思われます。
@ -330,9 +364,9 @@ malloc_options = "X";
.Pp
あいにく、この実装では、検出された問題に関する詳細は提供されません。
そのような情報を保存することで、パフォーマンスが悪影響を受けるためです。
パフォーマンスと引き換えにいっそうの健全さのチェックと詳細な診断を行い、
問題の検出と位置の特定に焦点を当てた、
利用可能なメモリ割り当ての実装がインターネットには数多くあります。
パフォーマンスと引き換えにいっそうの健全さのチェックと詳細な診断を行い、
問題の検出と位置の特定に焦点を当てた数多くのメモリ割り当ての実装が
インターネットで利用可能です。
.Sh 診断メッセージ
.Fn malloc ,
.Fn calloc ,
@ -340,67 +374,66 @@ malloc_options = "X";
.Fn free
がエラーや警告を検出すると、
メッセージがファイル記述子 STDERR_FILENOに出力されます。
エラーはコアダンプとなります。
エラーの場合、プロセスはコアダンプします。
.Dq A
オプションを設定すると、すべての
警告はエラーとして扱われます。
.Pp
以下では、出力される可能性があるエラーメッセージとその意味について
簡単に説明します。
.Bl -tag -width indent
.It "(ES): mumble mumble mumble
.Bl -diag
.It "(ES): mumble mumble mumble"
.Dq EXTRA_SANITY
が定義された状態でメモリ割り当て関数がコンパイルされており、
詳細なエラーチェック中にエラーが検出されました。
詳細については、ソースコードを参照してください。
.It "allocation failed
.Dq A
オプションを指定している場合は、メモリ割り当て関数が失敗すると
致命的なエラーとなります。
.It "mmap(2) failed, check limits
.It "mmap(2) failed, check limits"
システムが危険な過負荷な状態であるか、プロセスの制限が正しく
指定されていないと思われます。
.It "freelist is destroyed
.It "freelist is destroyed"
内部の解放リストが壊れています。
.It "out of memory"
.Dq X
オプションが指定されていて、かつ、メモリの割り当てに失敗しました。
.El
.Pp
.Bl -tag -width indent
以下では、出力される可能性がある警告メッセージとその意味について
簡単に説明します。
.It "chunk/page is already free
.Bl -diag
.It "chunk/page is already free"
すでに解放されているメモリを
.Fn free
で解放しようとしました。
.It "junk pointer ...
.It "junk pointer, ..."
メモリ割り当て関数に与えられたポインタが、
認識されているメモリ境界の外側を指しています。
.It "malloc() has never been called
.It "malloc() has never been called"
メモリが割り振られていないにも関わらず、解放しようとしたり、
再割り当てしようとしました。
.It "modified (chunk-/page-) pointer
.It "modified (chunk-/page-) pointer"
.Fn free
.Fn realloc
に渡されたポインタが書き換えられています。
.It "pointer to wrong page
.Fn malloc
.Fn calloc
が解放 (?) しようとしているポインタが、
.It "pointer to wrong page"
.Fn realloc ,
.Fn free
もしくは
.Fn reallocf
が解放しようとしているポインタが、
正しいページを参照していません。
.It "recursive call
.It "recursive call"
メモリ割り当て関数を再帰的に呼び出そうとしました。
これは許可されていません。
特にシグナルハンドラでは、メモリの割り当てをするべきではありません。
.It "out of memory
.Dq X
オプションが指定されていて、かつ、メモリの割り割り当てに失敗しました。
.It "unknown char in MALLOC_OPTIONS
.It "unknown char in MALLOC_OPTIONS"
不明なオプションが指定されました。
.Dq A
オプションを設定していても、この警告は単なる警告として扱われます。
.El
.Sh 関連項目
.Xr brk 2 ,
.Xr mmap 2 ,
.Xr alloca 3 ,
.Xr getpagesize 3 ,
.Xr memory 3
@ -411,26 +444,28 @@ malloc_options = "X";
.Fn realloc ,
.Fn free
関数は
.St -ansiC
に準拠しています。
.Sh バグ
問題が発生した場合に出力されるメッセージは、
実際の値についての詳細を提供しません。
.Pp
ゼロバイトを割り当てるように要求された場合に
ヌルポインタを返すことは、
愚かな問いかけに対する愚かな反応であると言えます。
.Pp
この実装の作者は、Poul-Henning Kamp です。
問題が発生した場合は、彼
.Li <phk@FreeBSD.org>
まで報告してください。
.St -isoC
に適合しています。
.Sh 歴史
現在のメモリ割り当ての実装は、
のゲルマニウムトランジスタで作成された、
個別のゲルマニウムトランジスタで作成された、
20 ビットバイナリコンピュータに取り付けられたドラムの
ファイルシステムとしてスタートしました。
それ以降は、二次保存域ではなく、一次保存域を操作するようになりました。
この新しい形態と機能は
.Fx 2.2
で最初に現れました。
ではじめて登場しました。
.Pp
.Xr reallocf 3
関数は
.Fx 3.0
ではじめて登場しました。
.Sh 作者
.An Poul-Henning Kamp Aq phk@FreeBSD.org
.Sh バグ
問題が発生した場合に出力されるメッセージは、
実際の値についての詳細を提供しません。
.Pp
0 バイトを割り当てるように要求された場合に
.Dv NULL
ポインタを返すことは、愚かな問いかけに対する愚かな反応であると言えます。

View file

@ -30,12 +30,12 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memory.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdlib/memory.3,v 1.5.2.2 2001/03/06 16:46:02 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/stdlib/memory.3,v 1.5.2.3 2001/08/17 15:42:42 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt MEMORY 3
.Os BSD 4
.Os
.Sh ̾¾Î
.Nm malloc ,
.Nm free ,

View file

@ -30,84 +30,102 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mktemp.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/stdio/mktemp.3,v 1.11.2.5 2001/07/22 12:06:46 dd Exp %
.\" $FreeBSD$
.\"
.Dd February 11, 1998
.Dt MKTEMP 3
.Os
.Sh 名称
.Nm mktemp
.Nd 一意な一時ファイル名を作成
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <unistd.h>
.Ft char *
.Fn mktemp "char *template"
.Ft int
.Fn mkstemp "char *template"
.Ft int
.Fn mkstemps "char *template" "int suffixlen"
.Ft char *
.Fn mkdtemp "char *template"
.Sh 解説
.Fn mktemp
関数は、特定ファイル名テンプレートの一部を書き換えて
ファイル名を作成します。このファイル名は一意的で、
アプリケーションでの使用に
適合しています。テンプレートとしては、
/tmp/temp.XXXX
のように、任意の
ファイル名に数桁の文字
関数は、与えられたファイル名テンプレートの一部を書き換えて
ファイル名を作成します。
このファイル名は、関数が呼ばれた時に存在していないことが保証されており、
アプリケーションでの使用に適しています。
テンプレートとしては、
.Pa /tmp/temp.XXXXXX
のように、任意のファイル名に数桁の文字
.Ql X
が付いているものが使用されます。最後の
が付いているものが使用されます。
後ろに続く
.Ql X
は、
現在のプロセス番号か固有な文字、またはその両方の組み合わせで置き
換えられます。
は、英数字の一意の組合せに置き換えられます。
.Fn mktemp
が戻す一意的なファイル名の数は、
.Ql X
の数によって決まります。
.Ql X
が6 桁である場合、
6 桁である場合、56800235584 (62 ** 6) 通りの可能な一時ファイル名から
.Fn mktemp
は約
26 ** 6
とおりのファイル名を作成できます。
によって一つ選ばれます。
.Pp
.Fn mkstemp
関数は、テンプレートを同じように置き換えて
テンプレートファイル、モード 0600 を作成し、読み書き用としてオープンした
ファイル記述子を返します。これにより、ファイルの存在を確認することと
使用するためにオープンすることとの間の競合状況を避けられます。
関数は、テンプレートを同じように置き換え、
モード 0600 でテンプレートファイルを作成し、
読み書き用としてオープンしたファイル記述子を返します。
こうすることにより、ファイルの存在を確認することと
使用するためにオープンすることとの間の競合状態を避けられます。
.Pp
.Fn mkstemps
は、テンプレートにサフィックスを含めることができることを除いて
.Fn mkstemp
と同様に動作します。
テンプレートは、
.Pa /tmp/tmpXXXXXXsuffix
という形式である必要があります。
.Fn mkstemps
は、サフィックス文字列の長さを必要とします。
.Pp
.Fn mkdtemp
関数は、テンプレートを
.Xr mktemp 3
と同じように置き換え、
テンプレートディレクトリ、モード 0700 を作成します。
モード 0700 でテンプレートディレクトリを作成します。
.Sh 戻り値
成功した場合、
.Fn mktemp
関数と
.Fn mkdtemp
関数は、問題がない場合はテンプレートのポインタを戻し、問題がある場合は
関数は、テンプレートへのポインタを返し、失敗した場合
.Dv NULL
を戻します。
します。
.Fn mkstemp
関数は、適切なファイルを作成できない場合に \-1 を戻します。
どの呼出しでもエラーが発生すると、エラーコードがグローバル変数
関数と
.Fn mkstemps
関数は、適切なファイルを作成できない場合に \-1 を返します。
どの関数呼出しでもエラーが発生すると、エラーコードがグローバル変数
.Va errno
に書き込まれます。
.Sh エラー
.Fn mkstemp
関数と
.Fn mkstemp ,
.Fn mkstemp ,
.Fn mkstemps ,
.Fn mkdtemp
関数は、以下の 1 つの値に
関数は、以下の値のうち 1 つを
.Va errno
設定します。
.Bl -tag -width [ENOTDIR]
設定します。
.Bl -tag -width Er
.It Bq Er ENOTDIR
テンプレートのパス名部分が、存在するディレクトリではない
テンプレートのパス名部分が、存在するディレクトリではありません
.El
.Pp
.Fn mkstemp
関数と
.Fn mkstemp ,
.Fn mkstemps ,
.Fn mkdtemp
関数は、
.Xr stat 2
@ -116,6 +134,8 @@
に設定する可能性があります。
.Pp
.Fn mkstemp
関数と
.Fn mkstemps
関数は、
.Xr open 2
関数で規定されるどの値も
@ -129,33 +149,55 @@
.Va errno
に設定する可能性があります。
.Sh
コアダンプに終わる問題として普通なものは、プログラマが、
コアダンプを引き起こす問題としてよくあるものは、プログラマが、
.Fn mktemp ,
.Fn mkstemp ,
.Fn mkstemps ,
.Fn mkdtemp
に読込み専用ストリングを渡しているために発生します。
に読込み専用文字列を渡しているものです。
この問題は、
.St -ansiC
コンパイラが普及する前に
開発されたプログラムで多く見られます。たとえば
引数
.St -isoC
コンパイラが普及する前に開発されたプログラムで多く見られます。
たとえば引数
.Qq /tmp/tempfile.XXXXXX
を指定して
.Fn mkstemp
を呼び出すと、
.Fn mkstemp
が、指定されたストリング定数を修正しようとするので、コアダンプが
起こります。問題を起こすプログラムが、このような関数呼出しを頻繁に
行なっている場合は、メモリの書込み可能セグメントへストリング定数を
保存するようにプログラムをコンパイルすることもできます。詳細については、
が、指定された文字列定数を書き換えようとしてコアダンプが起こります。
問題を起こすプログラムが、このような関数呼出しを頻繁に行っている場合は、
メモリの書込み可能セグメントへ文字列定数を
保持するようにプログラムをコンパイルすることもできます。
詳細については、
.Xr gcc 1
を参照してください。
.Sh バグ
システム攻撃者は、
この関数群は推測可能なファイル名を生成しますが、
.Ql X
の数を多くし作成可能な一時ファイル名の数を増やすことで、
推測される危険を最小化します。
.Fn mktemp
が作成したファイル名を推測できます。できるかぎり
では、あるファイルが存在するかのテスト (
.Fn mktemp
関数呼び出しの中) と、そのファイルを使用するためのオープン
(その後のユーザアプリケーションの中) との間で競合が発生し、
これはセキュリティの面から見て、とても危険です。
.Fn mkstemp
を使用してください。
には競合状態がありませんので、
可能な限り、この関数を使うべきでしょう。
もし
.Fn mkstemp
が使用できない場合は、
.Fn mktemp
で生成されたファイル名を
.Xr open 2
で開く時に
.Dv O_EXCL
フラグをつけるようにし、
失敗していないか戻り値をテストすべきでしょう。
こうすることによって、攻撃者がファイルの内容を操作したり
読んだりする意図を持ってファイルを既に作成していても、
プログラムが無闇に動作を継続することがなくなります。
.Pp
.Sh 関連項目
.Xr chmod 2 ,
@ -167,9 +209,20 @@
.Fn mktemp
関数は、
.At v7
に追加されました。
で登場しました。
.Fn mkstemp
関数は、
.Bx 4.4
で登場しました。
.Fn mkdtemp
関数は、
.Ox 2.2
に追加されました。
.\"kuma 1999-11-10
ではじめて登場し、その後
.Fx 3.2
で登場しました。
.Fn mkstemps
.Ox 2.4
ではじめて登場し、その後
.Fx 3.4
で登場しました。

View file

@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)popen.3 8.2 (Berkeley) 5/3/95
.\" %FreeBSD: src/lib/libc/gen/popen.3,v 1.10.2.2 2000/12/08 13:49:24 ru Exp %
.\"
.\" $FreeBSD$
.\"

View file

@ -34,23 +34,15 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)printf.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdio/printf.3,v 1.17.2.6 2001/04/18 13:21:08 ru Exp %
.\"
.\" %FreeBSD: src/lib/libc/stdio/printf.3,v 1.17.2.9 2001/08/17 15:42:41 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt PRINTF 3
.Os
.Sh 名称
.Nm printf ,
.Nm fprintf ,
.Nm sprintf ,
.Nm snprintf ,
.Nm asprintf ,
.Nm vprintf ,
.Nm vfprintf,
.Nm vsprintf ,
.Nm vsnprintf ,
.Nm vasprintf
.Nm printf , fprintf , sprintf , snprintf , asprintf ,
.Nm vprintf , vfprintf, vsprintf , vsnprintf , vasprintf
.Nd 書式に変換して出力
.Sh ライブラリ
.Lb libc
@ -86,12 +78,14 @@
.Fn vprintf
は、標準出力
.Em stdout
.Pa stdout
に出力を行います。
.Fn fprintf
.Fn vfprintf
は、指定された出力ストリームに出力を行います。
は、指定された出力
.Fa stream
に出力を行います。
.Fn sprintf ,
.Fn snprintf ,
.Fn vsprintf ,
@ -118,7 +112,17 @@
この関数は、出力された文字数
(文字列への出力を終了する、最後の
.Ql \e0
は含まない) を戻します。
は含まない) を返します。
.Fn snprintf
.Fn vsnprintf
の場合のみ、
.Fa size
の制限が無かったとしたら
出力されたであろう文字数
(同様に文字列の最後の
.Ql \e0
は含まない) を返します。
.Pp
.Fn asprintf
@ -135,7 +139,9 @@
.Fn vasprintf
は -1 を戻し、
.Fa ret
を NULL ポインタに設定します。
.Dv NULL
ポインタに設定します。
.Pp
.Fn snprintf
@ -143,12 +149,14 @@
は、最大で
.Fa size Ns \-1
文字だけ出力文字列に書き込みます
(size 番目の文字は終端の
(
.Fa size
番目の文字は終端の
.Ql \e0
になります)。
戻り値が
.Fa size
引数以上である場合は、文字列を格納するには短すぎたため、
引数以上である場合は、文字列を格納するには短すぎたため、
出力された文字の一部が破棄されたことになります。
.Pp
.Fn sprintf
@ -163,9 +171,9 @@
通常文字
.Cm ( %
以外)、および 0 以上の後続の引数を取り出す変換指定があります。
それぞれの変換指定は、文字
それぞれの変換指定は、
.Cm %
から始まります。引数は、
文字から始まります。引数は、
(型拡張の後に) 変換指示子に適切に対応する必要があります。
.Cm %
の後には、以下が順番に現れます。
@ -177,7 +185,8 @@
次にアクセスする引数を指定する任意のフィールド。
このフィールドを指定しないと、最後にアクセスされた
引数に続く引数が使用されます。引数には
.Cm 1 から始まる番号が付きます。
.Cm 1
から始まる番号が付きます。
書式指定文字列で、
アクセスできない引数がアクセスできる引数に点在する場合、
結果は不定になります。
@ -185,15 +194,12 @@
0 個以上の以下のフラグ
.Bl -hyphen
.It
値を ``代替形式'' に変換することを指定する
値を
.Dq 代替形式
に変換することを指定する
.Cm #
文字。
.Cm c ,
.Cm d ,
.Cm i ,
.Cm n ,
.Cm p ,
.Cm s ,
.Cm c , d , i , n , p , s ,
および
.Cm u
変換の場合、このオプションは効果を発揮しません。
@ -210,10 +216,7 @@
変換の場合は
.Ql 0X )
が付きます。
.Cm e ,
.Cm E ,
.Cm f ,
.Cm g ,
.Cm e , E , f , g ,
および
.Cm G
変換の場合は、小数点以下がなくても小数点が結果に常に含まれます
@ -224,51 +227,40 @@
.Cm G
変換の場合は、後続の 0 が通常の場合のように結果から削除されません。
.It
0 のパディングを指定する
.Sq Cm \&0
文字。
.Cm 0
(ゼロ) 文字のパディングを指定する。
.Cm n
変換を除くすべての変換では、
変換値の左に空白ではなく 0 が付きます。数値変換
.Pf ( Cm d ,
.Cm i ,
.Cm o ,
.Cm u ,
.Cm i ,
.Cm x ,
.Cm ( d , i , o , u , i , x ,
および
.Cm X )
で精度が指定されている場合、
.Sq Cm \&0
.Cm 0
フラグは無視されます。
.It
負のフィールド幅を示す
.Sq Cm \-
.Cm \-
フラグは変換された値がフィールド境界の左で揃えられる事を示します。
.Cm n
変換以外では、変換値の左に空白か 0 が付くのではなく、
変換値の右に空白が付きます。
.Sq Cm \-
.Cm \-
.Sq Cm \&0
.Cm \&0
を両方とも指定した場合は
.Sq Cm \&0
.Cm \&0
が無効になります。
.It
空白。符号付き変換
.Pf ( Cm d ,
.Cm e ,
.Cm E ,
.Cm f ,
.Cm g ,
.Cm G ,
.Cm ( d , e , E , f , g , G ,
および
.Cm i )
で作成される正の数値の前に空白が残ります。
.It
.Sq Cm +
.Cm +
文字。符号付き変換で作成される数値の前に常に符号が付きます。
.Sq Cm +
.Cm +
と空白を両方とも指定した場合は空白が無効になります。
.El
.It
@ -278,19 +270,14 @@
フィールドの幅に合わせられます。
.It
ピリオド
.Sq Cm .\&
.Cm .\&
の次に任意の数字文字列が続く形式の精度。
数字文字列を省略した場合、精度は 0 になります。
.Cm d ,
.Cm i ,
.Cm o ,
.Cm u ,
.Cm x ,
.Cm d , i , o , u , x ,
および
.Cm X
変換では、この精度の最低桁数が出力されます。
.Cm e ,
.Cm E ,
.Cm e , E ,
および
.Cm f
変換では、小数点以下にこの精度の桁数が出力されます。
@ -304,74 +291,75 @@
オプション文字
.Cm h
。後の
.Cm d ,
.Cm i ,
.Cm o ,
.Cm u ,
.Cm x ,
.Cm d , i , o , u , x ,
および
.Cm X
変換が
.Em short int
.Vt short int
引数か
.Em unsigned short int
.Vt unsigned short int
引数に対応すること、または後の
.Cm n
変換が
.Em short int
.Vt short int
引数のポインタに対応することを指定します。
.It
オプション文字
.Cm l
。後の
.Cm d ,
.Cm i ,
.Cm o ,
.Cm u ,
.Cm x ,
(小文字の L)。後の
.Cm d , i , o , u , x ,
および
.Cm X
変換が
.Em long int
.Vt long int
引数か
.Em unsigned long int
.Vt unsigned long int
引数のポインタに適用されること、または後の
.Cm n
変換が
.Em long int
.Vt long int
引数のポインタに対応することを指定します。
.It
オプション文字
.Cm q
。後の
.Cm d ,
.Cm i ,
.Cm o ,
.Cm u ,
.Cm x ,
.Cm ll
(小文字の L が 2 つ)。後の
.Cm d , i , o , u , x ,
および
.Cm X
変換が
.Em quad int
.Vt long long int
引数か
.Em unsigned quad int
.Vt unsigned long long int
引数に対応すること、または後の
.Cm n
変換が
.Em quad int
.Vt long long int
引数のポインタに対応することを指定します。
.It
オプション文字
.Cm q ,
。後の
.Cm d , i , o , u , x ,
および
.Cm X
変換が
.Vt quad int
引数か
.Vt unsigned quad int
引数に対応すること、または後の
.Cm n
変換が
.Vt quad int
引数のポインタに対応することを指定します。
.It
オプション文字
.Cm L
。後の
.Cm e ,
.Cm E ,
.Cm f ,
.Cm g ,
.Cm e , E , f , g ,
および
.Cm G
変換が
.Em long double
.Vt long double
引数に対応することを指定します。
.It
適用する変換の型を指定する文字。
@ -382,7 +370,7 @@
、または数字文字列の代わりに 1 つ以上の 10 進数と
.Ql $
が続くアスタリスクで指定できます。この場合、
.Em int
.Vt int
引数はフィールド幅か精度を提供します。
負のフィールド幅は、
正のフィールド幅が続く左揃えフラグとして扱われます。
@ -395,9 +383,9 @@
.Pp
.Bl -tag -width "diouxX"
.It Cm diouxX
.Em int
.Vt int
引数 (または適切な可変引数) が、符号付き 10 進
.Pf ( Cm d
.Cm ( d
.Cm i )
、符号なし 8 進
@ -405,7 +393,7 @@
、符号なし 10 進
.Pq Cm u
、符号なし 16 進
.Pf ( Cm x
.Cm ( x
.Cm X )
に変換されます。
@ -421,20 +409,18 @@
変換値で少ない桁しか必要ない場合は、
左に 0 が付きます。
.It Cm DOU
.Em long int
.Vt long int
引数が、符号付き 10 進、符号なし 8 進、符号なし 10 進に、
それぞれの形式が
.Cm ld ,
.Cm lo ,
.Cm ld , lo ,
および
.Cm lu
であるかのように変換されます。
この変換文字には問題があるので、最終的には出力されません。
.It Cm eE
.Em double
.Vt double
引数が丸められ、
.Sm off
.Pf [\-]d Cm \&. No ddd Cm e No \\*(Pmdd
.Sm of
.Oo \- Oc Ns d Ns Cm \&. Ns ddd Ns Cm e Ns \\*[Pm]dd
のスタイルに変換されます。
小数点以上は 1 桁で、小数点以下の桁数は精度と等しくなります。
精度が指定されていない場合は 6 が仮定されます。
@ -447,18 +433,16 @@
指数には、最低 2 桁が常に含まれます。
値が 0 である場合、指数は 00 になります。
.It Cm f
.Em double
.Vt double
引数が丸められ、
.Sm off
.Pf [-]ddd Cm \&. No ddd
.Sm on
.Oo \- Oc Ns ddd Ns Cm \&. Ns ddd ,
のスタイルで 10 進に変換されます。
小数点以下の桁数は、精度指定に等しくなります。
精度が指定されていない場合は 6 が仮定されます。
精度が 0 である場合、小数点は出力されません。
小数点が出力される場合は、小数点以上に最低 1 桁が出力されます。
.It Cm gG
.Em double
.Vt double
引数が、スタイル
.Cm f
@ -475,23 +459,26 @@
後続の 0 は、結果の小数部から削除されます。
小数点は、小数点以下に最低でも 1 桁ある場合に出力されます。
.It Cm c
.Em int
.Vt int
引数が
.Em unsigned char
.Vt unsigned char
に変換され、変換された文字が出力されます。
.It Cm s
.Dq Em char *
.Vt char *
引数が、文字型の配列を指すポインタ
(文字列へのポインタ) とみなされます。
配列の文字は、最後のヌル文字まで出力されます
(ヌル文字は出力されません)。
(
.Dv NULL
文字は出力されません)。
精度が指定されている場合、指定された数以上は出力されないので、
ヌル文字は必要ありません。
.Dv NULL
文字は必要ありません。
精度が指定されていない場合、
または精度が配列のサイズ以上である場合、
配列の最後にはヌル文字が必要です。
.It Cm p
.Dq Em void *
.Vt void *
ポインタ引数が、16 進で
.Ql ( %#x
@ -499,7 +486,7 @@
でのように) 出力されます。
.It Cm n
これまでに出力された文字数が、
.Dq Em int *
.Vt int *
ポインタ引数 (または可変ポインタ引数)
が指定する整数に保存されます。
引数は変換されません。
@ -515,11 +502,12 @@
フィールドは切り捨てられません。変換結果がフィールド幅より大きい場合、
フィールドは変換結果を収容できるようになるまで拡張されます。
.Sh
.Em weekday
.Fa weekday
.Em month
.Fa month
が文字列へのポインタである場合に
`Sunday, July 3, 10:02' という形式で日付と時刻を出力する場合:
.Dq Li "Sunday, July 3, 10:02"
という形式で日付と時刻を出力する場合:
.Bd -literal -offset indent
#include <stdio.h>
fprintf(stdout, "%s, %s %d, %.2d:%.2d\en",
@ -568,7 +556,9 @@ char *newfmt(const char *fmt, ...)
.Fn asprintf
関数と
.Fn vasprintf
関数は、GNU C ライブラリに追加されました。これは、
関数は、
.Tn GNU C
ライブラリに追加されました。これは、
.Fx 2.2
.An Peter Wemm Aq peter@FreeBSD.org
@ -579,20 +569,19 @@ char *newfmt(const char *fmt, ...)
のシステムで置き換えられました。
.Sh バグ
変換形式
.Cm \&%D ,
.Cm \&%O ,
.Cm \&%D , \&%O ,
および
.Cm \&%U
.Cm %U
は標準的ではなく、下位互換性を保つために提供されています。
.Cm %p
形式に (
.Sq Cm 0
.Cm 0
フラグか精度を指定することで) 0 をパディングすること、
.Cm %n
変換と
.Cm %p
変換で
.Sq Cm #
.Cm #
フラグを指定すること、
.Cm %Ld
のような無意味な組み合わせは標準的でありません。

View file

@ -1,8 +1,8 @@
.\"
.\"
.\" Copyright (c) 1998 Jordan Hubbard
.\"
.\"
.\" All rights reserved.
.\"
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@ -22,41 +22,36 @@
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: property.3,v 1.4 1998/11/22 13:20:09 jkh Exp %
.\" "
.\"
.\" %FreeBSD: src/lib/libutil/property.3,v 1.8.2.6 2001/07/22 12:07:18 dd Exp %
.\" $FreeBSD$
.\" "
.Dd October 7, 1998
.Os
.Dt properties 3
.Dt PROPERTIES 3
.Sh 名称
.Nm properties_read ,
.Nm properties_read ,
.Nm propery_find ,
.Nm properties_free
.Nd 単純なプロパティリストを ascii から作成する関数
.Nd 単純なプロパティリストを ASCII から作成する関数
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <libutil.h>
.Ft properties
.Fn properties_read "int fd"
.Ft char *
.Fn property_find "properties list" "char *name"
.Fn property_find "properties list" "const char *name"
.Ft void
.Fn properties_free "properties list"
.Pp
.Xr cc 1
コマンド行で
.Va -lutil
を指定してリンクする。
.Sh 解説
.nf
.Bd -literal
typedef struct _properties {
struct _properties *next;
char *name;
char *value;
} *properties;
.fi
.Ed
.Pp
関数
.Fn properties_read
は、
@ -64,7 +59,10 @@ typedef struct _properties {
で渡されたファイル記述子から名前と値のペアを読み込み、
ファイルの内容が適切に分析されたものとして新しい
プロパティリストのヘッドを戻します。エラーが発生した場合は
NULL を戻します。
NULL が返されます。
返される値は、最大長
.Dv PROPERTY_MAX_VALUE
バイトまでです。
.Pp
.Fn property_find
は、
@ -94,4 +92,4 @@ NULL
.Sh バグ
単純です。
.Sh 作者
Jordan Hubbard
.An Jordan Hubbard

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man3/pthread.3,v 1.12.2.2 2001/03/06 19:08:09 ru Exp %
.\" %FreeBSD: src/share/man/man3/pthread.3,v 1.12.2.4 2001/08/17 13:08:36 ru Exp %
.\"
.\" $FreeBSD$
.Dd September 10, 1998
.Dt PTHREAD 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread
.Nd POSIX スレッド関数

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cleanup_pop.3,v 1.5.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cleanup_pop.3,v 1.5.2.3 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 30, 1998
.Dt PTHREAD_CLEANUP_POP 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cleanup_pop
.Nd 最初のクリーンアップルーチンの呼び出し
@ -62,5 +62,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cleanup_push.3,v 1.5.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cleanup_push.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 30, 1998
.Dt PTHREAD_CLEANUP_PUSH 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cleanup_push
.Nd スレッド終了時のクリーンアップ関数の追加
@ -47,7 +47,7 @@
.Fa cleanup_routine
を追加します。
.Pp
.Fn pthread_cleanup_push
.Fa cleanup_routine
が呼び出されると、
.Fa arg
がその唯一の引数として渡されます。
@ -64,5 +64,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_broadcast.3,v 1.5.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_broadcast.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_BROADCAST 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_broadcast
.Nd 条件変数を待っている全てのスレッドのブロック解除
@ -70,5 +70,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_destroy.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_destroy.3,v 1.6.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_DESTROY 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_destroy
.Nd 条件変数の破壊
@ -74,5 +74,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_init.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_init.3,v 1.6.2.5 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_INIT 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_init
.Nd 条件変数の作成
@ -78,5 +78,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_signal.3,v 1.5.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_signal.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_SIGNAL 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_signal
.Nd 条件変数を待っている 1 つのスレッドのブロック解除
@ -70,5 +70,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_timedwait.3,v 1.8.2.3 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_timedwait.3,v 1.8.2.6 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_TIMEDWAIT 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_timedwait
.Nd 指定した時間の間の条件変数の待機
@ -88,5 +88,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_wait.3,v 1.8.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_cond_wait.3,v 1.8.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 28, 1998
.Dt PTHREAD_COND_WAIT 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_cond_wait
.Nd 条件変数の待機
@ -81,5 +81,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_create.3,v 1.9.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_create.3,v 1.9.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_CREATE 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_create
.Nd 新しいスレッドの作成

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_detach.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_detach.3,v 1.6.2.5 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_DETACH 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_detach
.Nd スレッドのデタッチ

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_equal.3,v 1.4.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_equal.3,v 1.4.2.5 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_EQUAL 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_equal
.Nd スレッド ID の比較

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_exit.3,v 1.8.2.3 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_exit.3,v 1.8.2.6 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_EXIT 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_exit
.Nd 呼び出しているスレッドの終了

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_getspecific.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_getspecific.3,v 1.6.2.3 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_GETSPECIFIC 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_getspecific
.Nd スレッド固有のデータ値の取得
@ -80,5 +80,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_join.3,v 1.7.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_join.3,v 1.7.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_JOIN 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_join
.Nd スレッド終了の待機
@ -103,5 +103,3 @@ NULL
.St -p1003.1-96
に適合しています。

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_key_create.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_key_create.3,v 1.6.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_KEY_CREATE 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_key_create
.Nd スレッド固有のデータキーの作成
@ -91,7 +91,6 @@
.It Bq Er ENOMEM
キーを作成するための十分なメモリがありません。
.El
.Pp
.Sh 関連項目
.Xr pthread_getspecific 3 ,
.Xr pthread_key_delete 3 ,
@ -101,5 +100,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_key_delete.3,v 1.6.2.2 2001/03/06 16:46:08 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_key_delete.3,v 1.6.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_KEY_DELETE 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_key_delete
.Nd スレッド固有のデータキーの削除
@ -84,7 +84,6 @@
.Fa key
の値が無効です。
.El
.Pp
.Sh 関連項目
.Xr pthread_getspecific 3 ,
.Xr pthread_key_create 3 ,
@ -94,5 +93,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_destroy.3,v 1.5.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_destroy.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 29, 1998
.Dt PTHREAD_MUTEX_DESTROY 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_mutex_destroy
.Nd mutex のために割り当てられたリソースの開放
@ -42,7 +42,9 @@
.Fn pthread_mutex_destroy "pthread_mutex_t *mutex"
.Sh 解説
.Fn pthread_mutex_destroy
関数は、mutex のために割り当てられたリソースを開放します。
関数は、
.Fa mutex
のために割り当てられたリソースを開放します。
.Sh 戻り値
問題がない場合は、
.Fn pthread_mutex_destroy
@ -59,7 +61,6 @@
.Fa mutex
が別のスレッドにロックされています。
.El
.Pp
.Sh 関連項目
.Xr pthread_mutex_init 3 ,
.Xr pthread_mutex_lock 3 ,
@ -70,5 +71,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_init.3,v 1.6.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_init.3,v 1.6.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 29, 1998
.Dt PTHREAD_MUTEX_INIT 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_mutex_init
.Nd mutex の作成
@ -66,7 +66,6 @@
.It Bq Er EAGAIN
別の mutex を作成するために一時的なリソースが不足しています。
.El
.Pp
.Sh 関連項目
.Xr pthread_mutex_destroy 3 ,
.Xr pthread_mutex_lock 3 ,
@ -77,5 +76,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_lock.3,v 1.5.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_lock.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 30, 1998
.Dt PTHREAD_MUTEX_LOCK 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_mutex_lock
.Nd mutex のロック
@ -64,7 +64,6 @@ mutex
を待つためにそのスレッドがブロックされた場合には、
デッドロックが発生しています。
.El
.Pp
.Sh 関連項目
.Xr pthread_mutex_destroy 3 ,
.Xr pthread_mutex_init 3 ,
@ -75,5 +74,3 @@ mutex
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_trylock.3,v 1.5.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_trylock.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 30, 1998
.Dt PTHREAD_MUTEX_TRYLOCK 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_mutex_trylock
.Nd ブロックを伴わない mutex のロックの試行
@ -64,7 +64,6 @@ mutex
.Fa mutex
が既にロックされています。
.El
.Pp
.Sh 関連項目
.Xr pthread_mutex_destroy 3 ,
.Xr pthread_mutex_init 3 ,
@ -75,5 +74,3 @@ mutex
.St -p1003.1-96
に適合しています。

View file

@ -25,12 +25,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_unlock.3,v 1.5.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_mutex_unlock.3,v 1.5.2.4 2001/08/17 15:42:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd July 30, 1998
.Dt PTHREAD_MUTEX_UNLOCK 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_mutex_unlock
.Nd mutex のロックを解除
@ -65,7 +65,6 @@
.Fa mutex
のロックを保持していません。
.El
.Pp
.Sh 関連項目
.Xr pthread_mutex_destroy 3 ,
.Xr pthread_mutex_init 3 ,
@ -76,5 +75,3 @@
.St -p1003.1-96
に適合しています。

View file

@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_once.3,v 1.6.2.3 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_once.3,v 1.6.2.6 2001/08/17 15:42:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 4, 1996
.Dt PTHREAD_ONCE 3
.Os BSD 4
.Os
.Sh 名称
.Nm pthread_once
.Nd 動的なパッケージの初期化
@ -93,7 +93,6 @@ pthread_once_t
で初期化されていない場合には、
.Fn pthread_once
の動作は未定義です。
.Pp
.Sh 戻り値
問題がない場合は、
.Fn pthread_once
@ -101,10 +100,8 @@ pthread_once_t
問題がある場合は、そのエラーを示すためにエラー番号が返されます。
.Sh エラー
ありません。
.Pp
.Sh 規格
.Fn pthread_once
.St -p1003.1-96
に適合しています。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlock_destroy.3,v 1.3.2.1 2000/04/22 16:35:07 phantom Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlock_destroy.3,v 1.3.2.2 2001/07/22 12:07:01 dd Exp %
.\"
.\" $FreeBSD$
.Dd August 4, 1998
@ -77,6 +77,4 @@
.Fn pthread_rwlock_destroy
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlock_init.3,v 1.2.2.1 2000/04/22 16:35:07 phantom Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlock_init.3,v 1.2.2.2 2001/08/17 15:42:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd August 4, 1998

View file

@ -115,6 +115,4 @@
.Fn pthread_rwlock_rdlock
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -77,6 +77,4 @@
.Fn pthread_rwlock_unlock
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -98,6 +98,4 @@
.Fn pthread_rwlock_wrlock
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_destroy.3,v 1.3.2.1 2000/04/22 16:35:09 phantom Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_destroy.3,v 1.3.2.2 2001/07/22 12:07:01 dd Exp %
.\"
.\" $FreeBSD$
.Dd August 4, 1998
@ -66,6 +66,4 @@
.Fn pthread_rwlockattr_destroy
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_getpshared.3,v 1.4.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_getpshared.3,v 1.4.2.3 2001/08/17 15:42:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd March 22, 1999
@ -79,6 +79,4 @@
.Fn pthread_rwlockattr_getpshared
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_init.3,v 1.3.2.1 2000/04/22 16:35:09 phantom Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_init.3,v 1.3.2.2 2001/08/17 15:42:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd August 4, 1998
@ -66,6 +66,4 @@
.Fn pthread_rwlockattr_init
簇眶は、
.Fx 3.0
で初めて登場しました。
ではじめて登場しました。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_setpshared.3,v 1.3.2.2 2001/03/06 16:46:09 ru Exp %
.\" %FreeBSD: src/lib/libc_r/man/pthread_rwlockattr_setpshared.3,v 1.3.2.3 2001/08/17 15:42:52 ru Exp %
.\"
.\" $FreeBSD$
.Dd August 4, 1998
@ -83,8 +83,7 @@
.Fn pthread_rwlockattr_setpshared
関数は、
.Fx 3.0
めて登場しました。
はじめて登場しました。
.Sh バグ
.Dv PTHREAD_PROCESS_SHARED
属性は、サポートされていません。

Some files were not shown because too many files have changed in this diff Show more