4.3-RELEASE based section 3 manual pages.

(Yes, they are 4.3-RELEASE based translations).

Submitted by:jpman project <man-jp@jp.FreeBSD.org>
Reviewed by:Yuko Sasaki <yuko@veltec.co.jp>
This commit is contained in:
Kazuo Horikawa 2001-08-19 04:06:11 +00:00
parent a8bd2ab848
commit 632fcd2e85
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=10398
22 changed files with 856 additions and 662 deletions

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1995
.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,7 +11,7 @@
.\" 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 Bill Paul.
.\" This product includes software developed by Bill Paul.
.\" 4. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@ -28,12 +28,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: ethers.3,v 1.7 1997/02/22 15:00:05 peter Exp %
.\" %FreeBSD: src/lib/libc/net/ethers.3,v 1.10.2.6 2000/12/14 12:10:01 ru Exp %
.\"
.\" $FreeBSD$
.Dd April 12, 1995
.Dt ETHERS 3
.Os FreeBSD 2.1
.Os FreeBSD
.Sh 名称
.Nm ethers ,
.Nm ether_line ,
@ -41,78 +41,78 @@
.Nm ether_ntoa ,
.Nm ether_ntohost ,
.Nm ether_hostton
.Nd イーサネットアドレス変換およびルックアップのルーチン
.Nd イーサネットアドレス変換および調査ルーチン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Fd #include <net/ethernet.h>
.Ft int
.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname"
.Fn ether_line "const char *l" "struct ether_addr *e" "char *hostname"
.Ft struct ether_addr *
.Fn ether_aton "char *a"
.Fn ether_aton "const char *a"
.Ft char *
.Fn ether_ntoa "struct ether_addr *n"
.Fn ether_ntoa "const struct ether_addr *n"
.Ft int
.Fn ether_ntohost "char *hostname" "struct ether_addr *e"
.Fn ether_ntohost "char *hostname" "const struct ether_addr *e"
.Ft int
.Fn ether_hostton "char *hostname" "struct ether_addr *e"
.Fn ether_hostton "const char *hostname" "struct ether_addr *e"
.Sh 解説
これらの関数は、
.Ar ether_addr
構造を使用してイーサネットアドレスに作用します。
この構造はヘッダファイル
構造体を使用してイーサネットアドレスを操作します。
この構造はヘッダファイル
.Aq Pa netinet/if_ether.h
に定義されます。
に定義されています。
.Bd -literal -offset indent
/*
* イーサネット(MAC)アドレスにあるバイト数
* イーサネット(MAC)アドレスバイト数
*/
#define ETHER_ADDR_LEN 6
#define ETHER_ADDR_LEN 6
/*
* 48 ビットイーサネットアドレスの構造
* 48 ビットイーサネットアドレスの構造
*/
struct ether_addr {
u_char octet[ETHER_ADDR_LEN];
};
.Ed
.Pp
関数
.Fn ether_line
は、
関数は、
.Xr ethers 5
形式の
.Tn ASCII
ストリングである
文字列である
.Ar l
を走査し、
ストリング内に指定されたイーサネットアドレスに
を走査し、文字列で指定されたイーサネットアドレスを
.Ar e
を設定し、ホスト名に
に設定し、ホスト名を
.Ar h
を設定します。この関数は、
に設定します。
この関数は、
.Pa /etc/ethers
の行をそのコンポーネントのパーツにパースするのに使用されます。
の行をその構成部分にパースするのに使用されます。
.Pp
.Fn ether_aton
関数は、イーサネットアドレスの
.Tn ASCII
表現を
.Ar ether_addr
構造
変換します。同様に、
構造体に変換します。
同様に、
.Fn ether_ntoa
は、
.Ar ether_addr
として指定された
イーサネットアドレスを
構造体として指定されたイーサネットアドレスを
.Tn ASCII
ストリングに変換します。
文字列に変換します。
.Pp
.Fn ether_ntohost
関数と
.Fn ether_hostton
関数は、イーサネットアドレスを
関数は、イーサネットアドレスを
.Pa /etc/ethers
データベースで指定された対応するホスト名にマップします。
.Fn ether_ntohost
@ -121,50 +121,50 @@ struct ether_addr {
は、ホスト名からイーサネットアドレスへの変換を行います。
.Sh 戻り値
.Fn ether_line
は、処理が成功するとゼロを返します。指定された行
は、処理が成功すると 0 を返します。
与えられた行
.Ar l
の一部をパースできなかった場合はゼロでない値を返します。
抽出されたイーサネットアドレスを指定の
の一部でもパースできなかった場合は 0 でない値を返します。
抽出されたイーサネットアドレスを与えられた
.Ar ether_addr
構造
構造
.Ar e
に返し、ホスト名を指定のストリング
に返し、ホスト名を与えられた文字列
.Ar h
に返します。
.Pp
処理が成功すると、
.Fn ether_ntoa
は、イーサネットアドレスの
は、処理が成功するとイーサネットアドレスの
.Tn ASCII
表現が入ったストリングを指すポインタを返します。指定された
表現が入った文字列へのポインタを返します。
与えられた
.Ar ether_addr
を変換できない場合は、
構造体を変換できなかった場合は、
.Dv NULL
ポインタを返します。同じように、
ポインタを返します。
同じように、
.Fn ether_aton
は成功すると
.Ar ether_addr
構造を指すポインタを返し、失敗すると
構造体へのポインタを返し、失敗すると
.Dv NULL
ポインタを返します。
.Pp
.Fn ether_ntohost
関数と
.Fn ether_hostton
関数は両方とも成功した場合はゼロを
返し、
関数は両方とも、成功した場合は 0 を返し、
.Pa /etc/ethers
データベース内に一致するものを検出できない場合はゼロ
でない値を返します。
データベース内に一致するものを見つけられなかった場合は
0 でない値を返します。
.Sh
ユーザは、
.Fn ether_line ,
.Fn ether_ntohost
および
.Fn ether_hostton
の各関数に
渡されるホスト名ストリングが、返されたホスト名を入れられるほど大きいことを
確認する必要があります。
の各関数に渡されるホスト名文字列が、
返されたホスト名を入れられるほど大きいことを保証する必要があります。
.Sh NIS 相互作用
.Pa /etc/ethers
の中に 1 つの + が入った行がある場合、
@ -190,8 +190,7 @@ NIS
関数は、これらが次に呼び出されたときには
上書きされる可能性のある静的メモリ領域に保存された値を返します。
.Sh 歴史
.Nm ethers
ライブラリ関数のこの特別な実現は、
.Nm
ライブラリ関数のこの実装は、
.Fx 2.1
のために作成され、
ここで現れました。
のために作成され、登場しました。

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
.\" Chris Torek and the American National Standards Committee X3,
@ -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,10 +33,13 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)ferror.3 8.2 (Berkeley) 4/19/94
.\" @(#)ferror.3 8.2 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/stdio/ferror.3,v 1.3.2.2 2001/03/06 16:46:01 ru Exp %
.\"
.\" $FreeBSD$
.\"
.\" WORD: error indicator エラー表示子 [JIS C]
.\" WORD: end-of-file indicator ファイル終了表示子 [JIS C]
.Dd April 19, 1994
.Dt FERROR 3
.Os
@ -45,9 +48,11 @@
.Nm feof ,
.Nm ferror ,
.Nm fileno
.Nd ストリームステータスのチェックとリセット
.Nd ストリームの状態のチェックとリセット
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Fd #include
.Ft void
.Fn clearerr "FILE *stream"
.Ft int
@ -60,24 +65,24 @@
.Fn clearerr
関数は、
.Fa stream
が指すストリームのファイル終了インジケータ
エラーインジケータをクリアします。
が指すストリームに対するファイル終了表示子
エラー表示子をクリアします。
.Pp
.Fn feof
関数は、
.Fa stream
が指すストリームのファイル終了インジケータを検査し、
ファイル終了インジケータが設定されている場合はゼロ以外を戻します。
ファイル終了インジケータをクリアできるのは、
が指すストリームに対するファイル終了表示子を検査し、
ファイル終了表示子が設定されている場合は 0 以外を戻します。
ファイル終了表示子をクリアできるのは、
.Fn clearerr
関数のみです。
.Pp
.Fn ferror
関数は、
.Fa stream
が指すストリームのエラーインジケータを検査し、
エラーインジケータが設定されている場合はゼロ以外を戻します。
エラーインジケータをリセットできるのは、
が指すストリームに対するエラー表示子を検査し、
エラー表示子が設定されている場合は 0 以外を戻します。
エラー表示子をリセットできるのは、
.Fn clearerr
関数のみです。
.Pp
@ -99,5 +104,5 @@
関数、
.Fn ferror
関数は、
.St -ansiC
.St -isoC
に準拠しています。

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.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,78 +29,89 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)fgetln.3 8.3 (Berkeley) 4/19/94
.\" @(#)fgetln.3 8.3 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/stdio/fgetln.3,v 1.4.2.2 2000/05/06 13:34:12 phantom Exp %
.\"
.\" $FreeBSD$
.\"
.\" WORD: error indicator エラー表示子 [JIS C]
.Dd April 19, 1994
.Dt FGETLN 3
.Os
.Sh 名称
.Nm fgetln
.Nd ストリームからラインを入手
.Nd ストリームから行を取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Fd #include
.Ft char *
.Fn fgetln "FILE *stream" "size_t *len"
.Sh 解説
.Fn fgetln
関数は、
.Fa stream
が参照するストリームから次のラインのポインタを戻します。
このラインは C ストリングではなく、
最後はナル文字で終了しません。
最後の改行も含めたラインの長さは、
が参照するストリームから次の行のポインタを戻します。
取得した行は、
.Dv NUL
文字で終端されていませんので、C 言語での文字列では
.Em ありません。
最後の改行も含めた行の長さは、
.Fa len
が指すメモリ位置に保存されます
(ラインが、改行で終わらないファイルの最後にある場合、
(ただし、改行で終わらないファイルの最後に行がある場合、
戻されるテキストに改行は含まれません)。
.Sh 戻り値
問題なく終了すると、ポインタが戻されます。
このポインタは、問題の有無に関係なく、
正常終了すると、ポインタが戻されます。
このポインタは、次に
.Fa stream
の次の
.Tn I/O
オペレーション、またはストリームが閉じられた直後で無効になります。
問題がある場合は
操作を行った後 (成功であれ失敗であれ)、あるいはストリームが
閉じた直後では無効になります。
異常終了した場合は
.Dv NULL
が戻されます。
.Fn fgetln
関数は、ファイルの終了とエラーを区別しません。
関数は、ファイルの終了とエラーを区別しません。
ファイルの終了かエラーかを判断するには、ルーチン
.Xr feof 3
および
.Xr ferror 3
を使用する必要があります。
エラーが発生した場合は、そのエラーを示す値にグローバル変数
を使用しなくてはなりません。
エラーが発生した場合は、そのエラーを示すために
グローバル変数
.Va errno
が設定されます。
ファイルの終了条件は端末でも記憶されるので、条件が
ファイルの終了状態はたとえ端末であっても記憶されます。
.Xr clearerr 3
でクリアされるまで、その後の読込みでは
でその状態がクリアされるまでは、
その後読込みを試みてもすべて
.Dv NULL
常に戻されます。
されます。
.Pp
戻されたサイズ以上に変更を加えなければ、
戻されたポインタが指すテキストは修正できます。
戻されたポインタが指し示すテキストは、
そのサイズを超えて変更を加えないという条件であれば
変更することができます。
この変更内容は、ポインタが無効になると失われます。
.Sh エラー
.Bl -tag -width [EBADF]
.Bl -tag -width Er
.It Bq Er EBADF
引数
.Fa stream
が、読込み用に開いたストリームではありません。
.El
.Pp
.Fn fgetln
関数がエラーになると、ルーチン
関数はエラーを発生し、ルーチン
.Xr fflush 3 ,
.Xr malloc 3 ,
.Xr read 2 ,
.Xr stat 2 ,
.Xr realloc 3
に指定されたエラーに
用に指定されたエラーのいずれかが
.Va errno
が設定されることがあります。
に設定される場合があります。
.Sh 関連項目
.Xr ferror 3 ,
.Xr fgets 3 ,
@ -110,4 +121,4 @@
.Fn fgetln
関数は、
.Bx 4.4
に追加されました。
で初めて登場しました。

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
.\" Chris Torek and the American National Standards Committee X3,
@ -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.
.\"
.\" @(#)fgets.3 8.1 (Berkeley) 6/4/93
.\" @(#)fgets.3 8.1 (Berkeley) 6/4/93
.\"
.\" $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
@ -43,9 +44,9 @@
.Sh 名称
.Nm fgets ,
.Nm gets
.Nd ストリームからラインを入手
.Nd ストリームから行を取得
.Sh 書式
.Fd #include <stdio.h>
.Fd #include
.Ft char *
.Fn fgets "char *str" "int size" "FILE *stream"
.Ft char *
@ -54,37 +55,39 @@
.Fn fgets
関数は、最大で
.Fa size
が指定するキャラクタ数より 1 少ないキャラクタ
で指定された文字数より 1 だけ少ない数の文字
.Fa stream
から読み込み、ストリング
から読み込み、文字列
.Fa str
に保存します。
読込みは、改行キャラクタ、ファイルの終了、
エラーが見つかった場合に停止します。
存在する改行は保持されます。
キャラクタを読み込んでエラーが発生しなかった場合、
読込みは、改行文字が見つかったり、ファイルの終了
あるいはエラーが見つかったりした場合に停止します。
改行文字は、存在していれば保持されます。
任意の文字を読み込んでエラーが発生しなかった場合、
ストリングの最後には
.Ql \e0
キャラクタが付きます。
文字が追加されます。
.Pp
.Fn gets
関数は、改行キャラクタが存在してもストリングに保存されないことを除けば、
.Fa size
を無限にして
.Fa stream
.Em stdin
にした
関数は
.Fn fgets
と同じです。呼び出し側では、
存在する入力ラインがストリングに収まる長さであることを
確認する必要があります。
関数で
.Fa size
を無限にし、
.Em stdin
.Fa stream
にしたものと等価ですが、
文字列中で改行文字が保存されない (改行文字が存在した場合) 点が
異なります。
入力行が存在する場合、それが十分短く文字列に収まりきる
ことを保証するのは呼び出し側の責任です。
.Sh 戻り値
問題なく終了すると、
正常終了すると、
.Fn fgets
.Fn gets
はストリングのポインタを戻します。
文字列のポインタを戻します。
キャラクタを読み込む前にファイルの終了に達すると、
.Dv NULL
が戻されます。
@ -94,18 +97,18 @@
.Fn fgets
関数と
.Fn gets
関数はファイルの終了とエラーを区別しません。
関数はファイルの終了とエラーを区別しません。
ファイルの終了かエラーかを判断するには、呼び出し側が
.Xr feof 3
.Xr ferror 3
を使用する必要があります
を使用しなくてはなりません
.Sh エラー
.Bl -tag -width [EBADF]
.Bl -tag -width Er
.It Bq Er EBADF
指定された
.Fa stream
が、読込み可能ストリームではありません。
が、読込み可能ストリームではありません。
.El
.Pp
.Fn fgets
@ -114,16 +117,16 @@
.Xr fstat 2 ,
.Xr read 2 ,
.Xr malloc 3
に指定されたエラーに
用に指定されたエラーのいずれかが
.Va errno
が設定されることがあります。
に設定される場合があります。
.Pp
.Fn gets
関数がエラーになると、ルーチン
.Xr getchar 3
に指定されたエラーに
用に指定されたエラーが
.Va errno
が設定されることがあります。
に設定される場合があります。
.Sh 関連項目
.Xr feof 3 ,
.Xr ferror 3 ,
@ -133,16 +136,18 @@
関数と
.Fn gets
関数は、
.St -ansiC
.St -isoC
に準拠しています。
.Sh バグ
通常の場合は
次の入力ラインが任意の長さより短いことを確認することは不可能で、
入力バッファがオーバフローすると必ずセキュリティ違反となるため、
通常、次の入力行がある任意の長さより短いことを保証するのは
不可能であり、また入力バッファをオーバフローすると
ほぼ必ずセキュリティ違反となるため、
プログラムでは
.Fn gets
を使用しないでください。
.Em 絶対に
使用しないでください。
.Fn gets
は、
.St -ansiC
に準拠するために存在します。
.St -isoC
に準拠するためだけに存在しています。

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
.\" Chris Torek and the American National Standards Committee X3,
@ -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,7 +33,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)fputs.3 8.1 (Berkeley) 6/4/93
.\" @(#)fputs.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdio/fputs.3,v 1.4.2.3 2001/03/06 16:46:01 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -43,8 +44,10 @@
.Nm fputs ,
.Nm puts
.Nd 行をストリームに出力する
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Fd #include
.Ft int
.Fn fputs "const char *str" "FILE *stream"
.Ft int
@ -53,14 +56,17 @@
.Fn fputs
関数は、
.Fa str
が指すストリング
が指す文字列
.Fa stream
が指すストリームに書き込みます。
.\" The terminating
.\" .Dv NUL
.\" character is not written.
.Pp
.Fn puts
関数は、ストリング
関数は、文字列
.Fa str
と最後に改行文字をストリーム
および文字列終端用の改行文字をストリーム
.Em stdout
に書き込みます。
.Sh 戻り値
@ -73,22 +79,22 @@
.Dv EOF
を戻します。
.Sh エラー
.Bl -tag -width [EBADF]
.Bl -tag -width Er
.It Bq Er EBADF
指定された
.Fa stream
が、書込み可能なストリームではありません。
.El
.Pp
ルーチン
.Xr write 2
で指定されたエラーに関して
.Fn fputs
関数と
.Fn puts
関数が失敗し、
関数は処理に失敗し、
ルーチン
.Xr write 2
で指定されたエラーのいずれかが
.Va errno
が設定されることがあります。
設定されることがあります。
.Sh 関連項目
.Xr ferror 3 ,
.Xr putc 3 ,
@ -99,6 +105,5 @@
関数と
.Fn puts
関数は、
.St -ansiC
.St -isoC
に準拠しています。
.\"X kuma 1999-11-5

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1987, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,8 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)gethostbyname.3 8.4 (Berkeley) 5/25/95
.\" %Id: gethostbyname.3,v 1.10 1998/06/06 05:50:44 jkoshy Exp %
.\" 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$
.Dd May 25, 1995
@ -46,9 +46,11 @@
.Nm herror ,
.Nm hstrerror
.Nd ネットワークホストのエントリの取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <netdb.h>
.Vt extern int h_errno;
.Vt extern int h_errno ;
.Ft struct hostent *
.Fn gethostbyname "const char *name"
.Ft struct hostent *
@ -69,60 +71,57 @@
.Fn gethostbyname ,
.Fn gethostbyname2 ,
.Fn gethostbyaddr
関数はそれぞれ、
次に示す構造体を持つオブジェクトのポインタを返します。構造体には、
名前またはアドレスによって参照されるインターネットホストが記述されていて、
ネームサーバ
関数はそれぞれ、次に示す構造を持つオブジェクトへのポインタを返します。
構造体には、名前またはアドレスによって参照されるインターネットホストが
記述されていて、ネームサーバ
.Xr named 8
から、または
.Pa /etc/hosts
にある行の内訳フィールドから
得られた情報を含んでいます。ローカルのネームサーバが実行されていない場合、
これらのルーチンは
にある行の内訳フィールドから得られた情報を含んでいます。
ローカルのネームサーバが実行されていない場合、これらのルーチンは
.Pa /etc/hosts
を検索します。
.Bd -literal
struct hostent {
char *h_name; /* ホストの正式名 */
char **h_aliases; /* 別名リスト */
int h_addrtype; /* ホストアドレスタイプ */
int h_length; /* アドレスの長さ */
char **h_addr_list; /* ネームサーバからのアドレスリスト */
struct hostent {
char *h_name; /* ホストの正式名 */
char **h_aliases; /* 別名リスト */
int h_addrtype; /* ホストアドレスタイプ */
int h_length; /* アドレスの長さ */
char **h_addr_list; /* ネームサーバからのアドレスリスト */
};
#define h_addr h_addr_list[0] /* アドレス、下位互換用 */
#define h_addr h_addr_list[0] /* アドレス、後方互換用 */
.Ed
.Pp
この構造体のメンバは次のとおりです。
.Bl -tag -width h_addr_list
.It Fa h_name
.It Va h_name
ホストの正式名。
.It Fa h_aliases
.It Va h_aliases
ホストの別名 (エイリアス) のヌルで終わる配列。
.It Fa h_addrtype
.It Va h_addrtype
返されるアドレスのタイプであり、通常は
.Dv AF_INET
.It Fa h_length
.It Va h_length
アドレスのバイト数による長さ。
.It Fa h_addr_list
.It Va h_addr_list
ホストのネットワークアドレスのヌルで終わる配列。
ホストアドレスはネットワークバイトで返されます。
.It Fa h_addr
.Fa h_addr_list
にある最初のアドレスであり、下位互換用。
ホストアドレスはネットワークバイトオーダで返されます。
.It Va h_addr
.Va h_addr_list
にある最初のアドレスであり、後方互換用。
.El
.Pp
ネームサーバを使用する場合、
ネームサーバを使用する場合、名前がドットで終わっていない時は
.Fn gethostbyname
および
.Fn gethostbyname
は、目的の名前が付いたホストを、現在のドメインと親のドメインから検索します。
ただしこれは、名前がドットで終わっていない場合です。
名前にドットが含まれないか、または環境変数
.Fn gethostbyname2
は名前が付いたホストを、現在のドメインと親のドメインから検索します。
名前にドットが含まれてなく、且つ環境変数
.Dq Ev HOSTALIASES
にエイリアスファイルの名前が含まれている場合は、
入力名に適合するエイリアスが最初にエイリアスファイルで検索されます。
ドメイン検索手続きとエイリアスファイル書式については、
入力名に適合するエイリアスが、まずエイリアスファイルから検索されます。
ドメイン検索手続きとエイリアスファイル書式については、
.Xr hostname 7
を参照してください。
.Pp
@ -148,9 +147,9 @@ struct hostent {
を返します。
.Pp
.Fn sethostent
関数は、問い合わせ用に、接続し
関数は、問い合わせの際に接続され
.Tn TCP
ソケットの使用を要求する場合に使用できます。
ソケットを使いたい場合に使用できます。
.Fa stayopen
フラグが 0 でなければ、
.Tn TCP
@ -158,8 +157,8 @@ struct hostent {
.Fn gethostbyname ,
.Fn gethostbyname2 ,
.Fn gethostbyaddr
のそれぞれ呼び出し後にも、接続を保持するようにオプションが設定できます。
その他の場合、問い合わせは
のそれぞれ呼び出し後にも、接続を保持するようにオプションを設定します。
フラグが 0 の時、問い合わせは
.Tn UDP
データグラムを使用して
実行されます。
@ -173,7 +172,9 @@ struct hostent {
関数は診断出力にメッセージを書き出します。
診断出力は文字列パラメータ
.Fa s
と、定数文字列 ": " と、
と、定数文字列
.Qq Li ":\ "
と、
.Va h_errno
の値に対応するメッセージで構成されます。
.Pp
@ -201,7 +202,7 @@ struct hostent {
ルーチンによって、エラーを記述するエラーメッセージを表示できます。
引数
.Fa string
.Dv NULL
でなければ表示され、後にコロンとスペースが続きます。
エラーメッセージが終端の改行とともに印刷されます。
@ -254,8 +255,8 @@ struct hostent {
.Pp
.Fn sethostent
関数はファイル
.Pa etc/hosts
をオープンおよび/またはリワインドします。
.Pa /etc/hosts
をオープンもしくはリワインドします。
.Fa stayopen
引数が 0 でなければ、
.Fn gethostbyname ,
@ -270,7 +271,7 @@ struct hostent {
.Fn herror
関数は
.Bx 4.3
最初に取り入れられました。
登場しました。
.Fn endhostent ,
.Fn gethostbyaddr ,
.Fn gethostbyname ,
@ -278,11 +279,14 @@ struct hostent {
.Fn sethostent
関数は
.Bx 4.2
最初に取り入れられました。
登場しました。
.Fn gethostbyname2
関数は bind-4.9.4 で最初に取り入れられました。
関数は
.Tn BIND
バージョン 4.9.4 で初めて登場しました。
.Sh バグ
これらの関数は静的データ記憶域を使用します。後でデータが必要な場合は、
以後の呼び出しで上書きする前にコピーして保存する必要があります。なお、
アドレスデータとして受け入れるのは現在、インターネットアドレスフォーマット
だけです。
これらの関数は静的データ記憶域を使用します。
後でこのデータを使う必要がある場合は、以後のこれらの関数呼び出しで
データが上書きされる前に、コピーして保存する必要があります。
なお、アドレスデータとして受け入れるのは現在、
インターネットアドレスフォーマットだけです。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,7 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)getnetent.3 8.1 (Berkeley) 6/4/93
.\" @(#)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$
.Dd June 4, 1993
@ -42,6 +43,8 @@
.Nm setnetent ,
.Nm endnetent
.Nd ネットワークエントリの取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <netdb.h>
.Ft struct netent *
@ -58,16 +61,16 @@
.Fn getnetent ,
.Fn getnetbyname ,
.Fn getnetbyaddr
関数はそれぞれ、次に示す構造を持つオブジェクトのポインタを返します。
関数はそれぞれ、次に示す構造を持つオブジェクトのポインタを返します。
構造体には、ネットワークデータベース
.Pa /etc/network
にある行の内訳フィールドが含まれます。
.Bd -literal -offset indent
struct netent {
char *n_name; /* ネットワークの正式名 */
char **n_aliases; /* 別名リスト */
int n_addrtype; /* ネット番号のタイプ */
unsigned long n_net; /* ネット番号 */
struct netent {
char *n_name; /* ネットワークの正式名 */
char **n_aliases; /* 別名リスト */
int n_addrtype; /* ネット番号のタイプ */
unsigned long n_net; /* ネット番号 */
};
.Ed
.Pp
@ -83,7 +86,7 @@ struct netent {
だけです。
.It Fa n_net
ネットワーク番号。
ネットワーク番号は、マシンバイトで返されます。
ネットワーク番号は、マシンバイトオーダで返されます。
.El
.Pp
.Fn getnetent
@ -93,11 +96,11 @@ struct netent {
.Fn setnetent
関数は、目的のファイルをオープンしリワインドします。
.Fa stayopen
フラグが 0 でなければ
フラグが 0 でなければ
.Fn getnetbyname
または
.Fn getnetbyaddr
それぞれの呼び出しの後に、ネットデータベースはクローズされません。
のそれぞれの呼び出しの後でも、ネットデータベースはクローズされません。
.Pp
.Fn endnetent
関数はファイルをクローズします。
@ -112,7 +115,7 @@ struct netent {
.Dv AF_INET
でなければなりません。
ネットワーク番号はホストオーダで規定されます。
ネットワーク番号はホストオーダでされます。
.Pp
.Sh 関連ファイル
.Bl -tag -width /etc/networks -compact
@ -134,12 +137,11 @@ struct netent {
.Fn endnetent
関数は、
.Bx 4.2
最初に取り入れられました。
登場しました。
.Sh バグ
これらの関数で使用されるデータ空間は静的です。
後でこのデータを使う必要がある場合は、
以後のこれら関数の呼び出しでデータを上書きする前に、
コピーして保存する必要があります。
後でこのデータを使う必要がある場合は、以後のこれら関数の呼び出しで
データが上書きされる前に、コピーして保存する必要があります。
データとして受け入れられるのは現在、インターネットネットワーク番号だけです。
ネットワーク番号が 32 ビットを超えない範囲に収まるというのは、
おそらく素朴な考えです。
ネットワーク番号が 32 ビットを超えない範囲に収まっていると期待するのは、
おそらく素朴過ぎます。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,7 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)getprotoent.3 8.1 (Berkeley) 6/4/93
.\" @(#)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$
.Dd June 4, 1993
@ -41,7 +42,9 @@
.Nm getprotobyname ,
.Nm setprotoent ,
.Nm endprotoent
.Nd プロトコルエントリを取得
.Nd プロトコルエントリの取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <netdb.h>
.Ft struct protoent *
@ -55,23 +58,20 @@
.Ft void
.Fn endprotoent void
.Sh 解説
.Fn getprotoent
.Fn getprotobyname
.Fn getprotoent ,
.Fn getprotobyname ,
および
.Fn getprotobynumber
関数はそれぞれ、
次に示す構造体を持つオブジェクトのポインタを返します。構造体には、
ネットワークプロトコルデータベース
関数はそれぞれ、次に示す構造を持つオブジェクトへのポインタを返します。
構造体には、ネットワークプロトコルデータベース
.Pa /etc/protocols
にある行の内訳フィールド
が含まれます。
にある行の内訳フィールドが含まれます。
.Bd -literal -offset indent
.Pp
struct protoent {
char *p_name; /* プロトコルのオフィシャル名 */
char **p_aliases; /* エイリアスリスト */
int p_proto; /* プロトコル番号 */
char *p_name; /* プロトコルのオフィシャル名 */
char **p_aliases; /* エイリアスリスト */
int p_proto; /* プロトコル番号 */
};
.Ed
.Pp
@ -80,36 +80,32 @@ struct protoent {
.It Fa p_name
プロトコルのオフィシャル名。
.It Fa p_aliases
プロトコルのゼロで終わる別名
(エイリアス)
リスト。
プロトコルの別名 (エイリアス) の 0 で終わるリスト。
.It Fa p_proto
プロトコル番号。
.El
.Pp
.Fn getprotoent
関数は、必要ならばファイルをオープンして次の行を読み
込みます。
関数は、ファイルの次の行を読み込みます。
この際、必要ならばファイルをオープンします。
.Pp
.Fn setprotoent
関数は、ファイルをオープンしてリワインドします。
.Fa stayopen
フラグがゼロでなければ、
フラグが 0 でなければ、
.Fn getprotobyname
または
.Fn getprotobynumber
の各呼び出しの後、ネットデータベースはクローズされません。
のそれぞれの呼び出しの後でも、ネットデータベースはクローズされません。
.Fn endprotoent
関数はファイルをクローズします。
.Pp
.Fn getprotobyname
および
.Fn getprotobynumber
関数は、適合する
プロトコル名またはプロトコル番号が見付かるか、または
関数は、適合するプロトコル名またはプロトコル番号が見付かるか、または
.Dv EOF
出会うまでファイルを順次検索します。
達するまで、ファイルを最初から順次検索します。
.Sh 戻り値
.Dv EOF
またはエラーで
@ -124,20 +120,18 @@ Null
.Sh 関連項目
.Xr protocols 5
.Sh 歴史
.Fn getprotoent
.Fn getprotobynumber
.Fn getprotobyname
.Fn getprotoent ,
.Fn getprotobynumber ,
.Fn getprotobyname ,
.Fn setprotoent
および
.Fn endprotoent
関数は
.Bx 4.2
最初に取り入れられました。
登場しました。
.Sh バグ
これらの関数は静的データ空間を使用します。後で使用する必要があれば、以後の
呼び出しで上書きする前にデータをコピーして保存する必要があります。なお、
プロトコルデータとして受け入れるのは現在、インターネットプロトコル
だけです。
これらの関数は静的データ空間を使用します。
後でこのデータを使用する必要があれば、以後のこれらの関数の呼び出しで
データが上書きされる前に、コピーして保存する必要があります。
なお、プロトコルデータとして受け入れるのは現在、
インターネットプロトコルだけです。

View file

@ -30,6 +30,7 @@
.\" 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$
.Dd June 4, 1993
@ -37,7 +38,9 @@
.Os
.Sh 名称
.Nm getpw
.Nd uidからユーザ名を取得
.Nd uid からユーザ名を取得
.Sh ライブラリ
.Lb libcompat
.Sh 書式
.Fd #include <sys/types.h>
.Ft int
@ -45,22 +48,18 @@
.Sh 解説
.Bf -symbolic
getpw 関数は、getpwuid(3)
の登場によって廃止されています。
.br
互換性ライブラリ
libcompat
で利用できます。
の登場によって旧式のものとなっています。
.Ef
.Pp
.Fn getpw
関数はファイル
.Pa /etc/passwd
を読み出し、指定
を読み込んで、指定された
.Fa uid
が見かればその
が見かればその
パスワードエントリ行を、
.Fa buf
によって示されるストリングにコピーします。
が指す文字列にコピーします。
パスワードデータベースからコピーするエントリ行が
null
で終わっている場合は、
@ -68,24 +67,24 @@ null
キャラクタを後に付加します。
.Sh 戻り値
.Fn getpw
関数は、処理が無事に完了した場合ゼロを返します。エントリが
存在しないなど、その他の場合は非ゼロを返します。
関数は、処理が正常終了した場合には 0 を返します。
エントリが存在しないなど、その他の場合は非 0 を返します。
.Sh 関連ファイル
.Bl -tag -width /etc/passwd - compact
.Bl -tag -width /etc/passwd -compact
.It Pa /etc/passwd
.El
.Sh 関連項目
.Xr getpwent 3
.Xr getpwent 3 ,
.Xr passwd 5
.Sh 歴史
.Fn getpw
関数は
関数は
.At v6
最初に取り入れられました。
初めて登場しました。
.Sh バグ
.Fa buf
で示された領域は、ユーザ名を保持するのに十分な大きさの必要があります。
で示された領域は、ユーザ名を保持するのに十分な大きさである
必要があります。
.Pp
.Xr getpwent 3
に関するバグはすべてこの関数でも有効です。
に関するバグはすべてこの関数でも当てはまります。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,8 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)getservent.3 8.3 (Berkeley) 1/12/94
.\" %Id: getservent.3,v 1.5 1997/02/22 15:00:13 peter Exp %
.\" 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$
.Dd July 9, 1995
@ -42,7 +42,9 @@
.Nm getservbyname ,
.Nm setservent ,
.Nm endservent
.Nd サービスエントリを取得
.Nd サービスエントリの取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <netdb.h>
.Ft struct servent *
@ -56,23 +58,20 @@
.Ft void
.Fn endservent void
.Sh 解説
.Fn getservent
.Fn getservent ,
.Fn getservbyname
および
.Fn getservbyport
関数はそれぞれ、次に
示す構造体を持つオブジェクトのポインタを返します。構造体には
ネットワークサービスデータベース
関数はそれぞれ、次に示す構造を持つオブジェクトへのポインタを返します。
構造体にはネットワークサービスデータベース
.Pa /etc/services
にある、行の内訳フィールドが
含まれます。
にある、行の内訳フィールドが含まれます。
.Bd -literal -offset indent
struct servent {
char *s_name; /* サービスのオフィシャル名 */
char **s_aliases; /* エイリアスリスト */
int s_port; /* サービスが常駐するポート */
char *s_proto; /* 使用するプロトコル */
char *s_name; /* サービスのオフィシャル名 */
char **s_aliases; /* エイリアスリスト */
int s_port; /* サービスが常駐するポート */
char *s_proto; /* 使用するプロトコル */
};
.Ed
この構造体のメンバは次のとおりです。
@ -80,45 +79,41 @@ struct servent {
.It Fa s_name
サービスのオフィシャル名。
.It Fa s_aliases
サービスのゼロで終わる別名
(エイリアス)
リスト。
サービスの別名 (エイリアス) の 0 で終るリスト。
.It Fa s_port
サービスが常駐するポート番号。ポート番号は
ネットワークバイト順で返されます。
サービスが存在するポート番号。
ポート番号はネットワークバイトオーダで返されます。
.It Fa s_proto
サービスとのコンタクト中に使用するプロトコル名。
.El
.Pp
.Fn getservent
関数は、必要ならばファイルをオープンして次の行を読み込みます。
関数は、ファイルの次の行を読み込みます。
その際、必要ならばファイルをオープンします。
.Pp
.Fn setservent
関数はファイルをオープンしリワインドします。
.Fa stayopen
フラグがゼロでなければ、
フラグが 0 でなければ、
.Fn getservbyname
または
.Fn getservbyport
の各呼び出し後に、
ネットデータベースはクローズされません。
の各呼び出しの後でも、ネットデータベースはクローズされません。
.Pp
.Fn endservent
関数はファイルをクローズします。
.Pp
適合するプロトコル名またはポート番号が見付かるか、さもなければ
.Dv EOF
出会うまで、
.Fn getservbyname
および
.Fn getservbyport
関数は最初から順次
ファイルを検索します。プロトコル名が供給されていても(
関数は、適合するプロトコル名またはポート番号
(これはネットワークバイトオーダで指定されなければなりません)
が見付かるか、さもなければ
.Dv EOF
に達するまで、ファイルを最初から順次検索します。
プロトコル名が与えられていても (
.Dv NULL
でなくても)
、検索は適合するプロトコルが見付かるまで続けられます。
.ne 1i
でなくても)、検索は適合するプロトコルが見付かるまで続けられます。
.Sh 関連ファイル
.Bl -tag -width /etc/services -compact
.It Pa /etc/services
@ -131,24 +126,20 @@ Null
(0)
が返ります。
.Sh 関連項目
.Xr getprotoent 3
.Xr getprotoent 3 ,
.Xr services 5
.Sh 歴史
.Fn getservent
.Fn getservbyport
.Fn getservbyname
.Fn getservent ,
.Fn getservbyport ,
.Fn getservbyname ,
.Fn setservent
および
.Fn endservent
関数は、
.Bx 4.2
最初に取り入れられました。
登場しました。
.Sh バグ
これらの関数は静的データストレージを使用します。後で使用する必要があれば、
以後の呼び出しで上書きする前にデータをコピーして保存する必要があります。
ポート番号がすべて
32 ビットに適合すると考えるのは、たぶん素朴過ぎます。
これらの関数は静的データ記憶域を使用します。
後でこのデータを使用する必要があれば、以後のこれらの関数呼び出しで
データが上書きされる前に、コピーして保存する必要があります。
ポート番号がすべて 32 ビットに適合すると期待するのは、たぶん素朴過ぎます。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,8 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93
.\" %Id: inet.3,v 1.6 1997/03/19 19:41:20 bde Exp %
.\" 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$
.Dd June 17, 1996
@ -41,10 +41,14 @@
.Nm inet_addr ,
.Nm inet_network ,
.Nm inet_ntoa ,
.Nm inet_ntop ,
.Nm inet_pton ,
.Nm inet_makeaddr ,
.Nm inet_lnaof ,
.Nm inet_netof
.Nd インターネットアドレス操作関数
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
@ -58,6 +62,10 @@
.Fn inet_network "const char *cp"
.Ft char *
.Fn inet_ntoa "struct in_addr in"
.Ft const char *
.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
.Fn inet_makeaddr "unsigned long net" "unsigned long lna"
.Ft unsigned long
@ -69,44 +77,77 @@
.Fn inet_addr
および
.Fn inet_network
ルーチンはインターネット標準の
.Ql \&.
表記法で示される数値を表現するキャラクタ・ストリングを解釈します。
ルーチンは、インターネット標準の
.Ql .\&
表記法で示される数値を表現している文字列を解釈します。
.Pp
.Fn inet_pton
関数は、表示形式のアドレス (つまり文字列で保持されている印字可能な形式) から
ネットワーク形式 (通常
.Ft struct in_addr
もしくは他の内部的なバイナリ表現形式で、ネットワークバイトオーダ) への
変換を行います。
この関数は、指定されたアドレスファミリにおいて、アドレスが
有効なものであれば 1 を返し、パースできなければ 0 を返します。
またシステムエラーが発生した時 (この場合は
.Va errno
が設定されます) には、-1 を返します。
この関数は現在
.Dv AF_INET
.Dv AF_INET6
に対して有効です。
.Pp
.Fn inet_aton
ルーチンは指定キャラクタ・ストリングを
インターネット・アドレスと解釈し、アドレスを供給された構造体の中に
置きます。
ストリングが正常に解釈されると同ルーチンは 1 を返し、ストリングが
無効のとき 0 を返します。
ルーチンは、指定された文字列をインターネットアドレスとして解釈し、
与えられた構造体の中にアドレスを設定します。
文字列が正常に解釈されると同ルーチンは 1 を返し、
文字列が無効のとき 0 を返します。
.Fn inet_addr
.Fn inet_network
関数はそれぞれ、
インターネット・アドレスとインターネット・ネットワーク番号として使うのに
インターネットアドレスとインターネットネットワーク番号として使うのに
適した数値を返します。
.Pp
.Fn inet_ntop
関数は、ネットワーク形式 (通常
.Ft struct in_addr
もしくは他の内部的なバイナリ形式で、ネットワークバイトオーダ) から
表示形式 (外部に表示するのに適した形式) への変換を行います。
この関数は、システムエラーが発生した時 (この場合は
.Va errno
が設定されます) にはヌルを返し、それ以外の時は目的の文字列への
ポインタを返します。
この関数は現在
.Dv AF_INET
and
.Dv AF_INET6
に対して有効です。
.Pp
.Fn inet_ntoa
ルーチンはインターネット・アドレスを取り込み、
.Ql \&.
ルーチンはインターネットアドレスを受け取り
.Ql .\&
表記法のアドレスを示す
.Tn ASCII
ストリングを返します。
文字列を返します。
.Fn inet_makeaddr
ルーチンはインターネット・ネットワーク番号と
ローカル・ネットワーク・アドレスを取り込み、
それを基にインターネット・アドレスを生成します。
ルーチンはインターネットネットワーク番号と
ローカルネットワークアドレスを受け取り、
それを基にしてインターネットアドレスを生成します。
.Fn inet_netof
.Fn inet_lnaof
ルーチンはインターネット・ホスト・アドレスを分割して、
それぞれネットワーク番号とローカル・ネットワーク・アドレス部として返します。
ルーチンはインターネットホストアドレスを分割して、
それぞれネットワーク番号とローカルネットワークアドレス部として返します。
.Pp
すべてのインターネット・アドレスはネットワーク順序 ( 左から右への
すべてのインターネットアドレスはネットワークオーダ ( 左から右への
バイト順 ) で返されます。
ネットワーク番号とローカルアドレス部はすべてマシン形式の整数値で
ネットワーク番号とローカルアドレス部はすべてマシン形式の整数値で
返されます。
.Pp
.Sh インターネットアドレス
.Ql \&.
.Sh インターネットアドレス
.Ql .\&
表記法で指定される値は次のどれか一つの形式を取ります。
.Bd -literal -offset indent
a.b.c.d
@ -116,53 +157,54 @@ a
.Ed
.Pp
4 個の部分アドレスが指定されると、各部分は 1 バイトのデータと解釈されて、
左から右の順でインターネットアドレスの 4 バイトに割り当てられます。
インターネットアドレスが
左から右の順でインターネットアドレスの 4 バイトに割り当てられます。
インターネットアドレスが
.Tn VAX
上で32 ビットの整数量であると見なされるとき、上記に該当するバイトは、
.Dq Li d.c.b.a .
と表示されます。すなわち、
上で 32 ビットの整数値であると見なされるとき、上記に該当するバイトは、
.Dq Li d.c.b.a
と表示されることに注意して下さい。
すなわち、
.Tn VAX
のバイト順序は右から左順になります。
のバイトオーダは右から左の順になります。
.Pp
3 個の部分アドレスが指定されると、最後の部分が 16 ビットと解釈されて、
ネットワークアドレスの右端の 2 バイトになります。これは、 3 つの部分
アドレス形式で Class B ネットワークアドレスを
3 個の部分アドレスが指定されると、最後の部分が 16 ビットと解釈されて、
ネットワークアドレスの右端の 2 バイトになります。
これにより 3 つの部分アドレス形式で Class B ネットワークアドレスを
.Dq Li 128.net.host
して指定可能にする便宜操作です。
指定でき、便利です。
.Pp
2 個の部分アドレスが供給されると、最後の部分アドレスが 24 ビット量として
解釈されて、ネットワークアドレスの右端の 3 バイトになります。
これは 2 個の部分アドレス形式でも Class A ネットワーク・アドレスを
.Dq Li net.host .
して指定可能にする便宜操作です。
2 個の部分アドレスが与えられると、最後の部分アドレスが 24 ビット値として
解釈されて、ネットワークアドレスの右端の 3 バイトになります。
これにより 2 個の部分アドレス形式で Class A ネットワークアドレスを
.Dq Li net.host
指定でき、便利です。
.Pp
1 個の部分アドレスだけ指定されると、値はバイトの再調整なしに
直接ネットワークアドレスに保存されます。
直接ネットワークアドレスに保存されます。
.Pp
.Ql \&.
.Ql .\&
表記法で
.Dq 部分
として供給される数値はすべて、 C 言語で
指定される 10 進数、 8 進数、 16 進数のいづれかの形式を取ることができます
( すなわち、先行の 0x または 0X は 16 進数、
その他は先行する 0 が 8 進数、または数値が 10 進数と解釈されます ) 。
として供給される数値はすべて、C 言語で指定される 10 進数、8 進数、16 進数の
いずれかの形式を取ることができます
(すなわち、先行の 0x または 0X は 16 進数を意味し
先行する 0 は 8 進数を意味し、数値は 10 進数と解釈されます) 。
.Pp
.Fn inet_aton
.Fn inet_ntoa
関数は
関数は幾分避けるべき関数で、むしろ
.Xr addr2ascii 3
ファミリに妥協した完全に確立されていない関数です。
しかし、これらの関数はまだ広く使用されていないため、
当面は移植性のあるプログラムはこれらの存在に依存せずに
ファミリが使われます。
しかし、これらの関数はまだ広く実装されていないため、
当面、移植性のあるプログラムはこれらの関数に依存できず、
.Xr inet 3
関数の使用を継続します
関数が使われ続けるでしょう
.Sh 診断
.Fn inet_addr
.Fn inet_network
は形式違反の要求に
は形式違反の要求に対し
.Dv INADDR_NONE
定数を返します。
.Sh 関連項目
@ -171,23 +213,43 @@ a
.Xr getnetent 3 ,
.Xr hosts 5 ,
.Xr networks 5
.Rs
.%R RFC
.%N 2373
.%D July 1998
.%T "IP Version 6 Addressing Architecture"
.Re
.Sh 規格
.Fn inet_ntop
.Fn inet_pton
関数は、
.St -xns5.2d2.0
に適合しています。
.Fn inet_pton
関数は、1 個、2 個もしくは 3 個のドット形式のアドレスには
対応していないことに注意してください。
アドレスは 4 個に分けて指定しなければなりません。
これは
.Fn inet_aton
関数が受け取ることのできる入力セットよりもせまいものです。
.Sh 歴史
ここで扱う関数は
れらの関数は
.Bx 4.2
で取り入れられました。
登場しました。
.Pp
.Sh バグ
.Dv INADDR_NONE
(0xffffffff) 値は有効な同報通信アドレスですが、
(0xffffffff) 値は有効なブロードキャストアドレスですが、
.Fn inet_addr
はエラー表示なしにこの値を返すことができません。
この値を返す時に失敗を示してしまいます
新しい
.Fn inet_aton
関数はこの問題を解決しました。
ホスト・バイト順序対ネットワーク・バイト順序の問題は混乱しがちです。
関数では、この問題は解決されています
ホストバイトオーダ対ネットワークバイトオーダの問題は混乱しがちです。
.Fn inet_ntoa
が返すストリングはスタチック・メモリ領域に常駐します。
が返す文字列は静的メモリ領域に収められます。
.Pp
Inet_addr は
inet_addr は
.Fa struct in_addr
を返す必要があります。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 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
.\" Donn Seeley at BSDI.
@ -14,8 +14,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.
@ -32,8 +32,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)linkaddr.3 8.1 (Berkeley) 7/28/93
.\" %Id: linkaddr.3,v 1.7 1997/02/22 15:00:24 peter Exp %
.\" 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$
.Dd June 17, 1996
@ -42,7 +42,9 @@
.Sh 名称
.Nm link_addr ,
.Nm link_ntoa
.Nd リンクレベルアクセス用基本アドレス定義ルーチン
.Nd リンクレベルアクセス用基本アドレス指定ルーチン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
@ -53,17 +55,17 @@
.Fn link_ntoa "const struct sockaddr_dl *sdl"
.Sh 解説
.Fn link_addr
ルーチンは、リンクレベルアドレスを表す文字列を変換し、
ルーチンは、リンクレベルアドレスを表す文字列を解釈し、
システムコールで使用するのに適したバイナリ情報を返します。
.Fn link_ntoa
ルーチンは、リンクレベルアドレスを引数に取り、リンクレベルアドレス自身、
インタフェース名、存在する場合はその番号などを含んだ現在の情報を示す
存在する場合はそのインタフェース名や番号などを含んだ現在の情報を示す
.Tn ASCII
文字列を返します。
この機能はまだ試用段階であり、変更される可能性があります。
この機能はまだ試用段階であり、変更される可能性があります。
.Pp
.Fn link_addr
のために、文字列
対して、文字列
.Fa addr
には、
.Xr ifconfig 8
@ -73,41 +75,39 @@
その後にコロン、そしてピリオドで区切られた 16 進数の組の形の
インタフェースアドレスが続きます。
それぞれの組はアドレスの 1 バイトを示しており、
アドレスバイトは左から右へ、
低位のバイトから高位のバイトで占められます。
アドレスバイトは左から右へ、低位のバイトから高位のバイトへと占められます。
.Pp
.\" A regular expression may make this format clearer:
.\" 正規表現を用いると、この形式がもっとわかりやすくなるでしょう。
.\" .Bd -literal -offset indent
.\" ([a-z]+[0-9]+:)?[0-9a-f]+(\e.[0-9a-f]+)*
.\" .Ed
.\" .Pp
このように、
つまり
.Li le0:8.0.9.13.d.30
初期の Lance イーサネットインタフェース上に
変換されるイーサネットアドレスを表します。
1 つ目の Lance イーサネットインタフェースへ転送される
イーサネットアドレスを表します。
.Pp
これらの関数を直接使うのは避けられる傾向があり、むしろ
.Xr addr2ascii 3
インタフェースが使われます。しかし、このインタフェースは、まだ広くは
実装されていないので、
可搬性のあるプログラムでこのインタフェースに依存するわけにはいきません。
インタフェースが使われます。
しかし、このインタフェースはまだ広くは実装されていないので、
移植性のあるプログラムでは、このインタフェースに依存するわけにはいきません。
.Sh 戻り値
.Fn link_ntoa
は、常にヌルで終了する文字列を返します。
.Fn link_addr
関数は戻り値を返しません(
関数は戻り値を返しません (
.Sx バグ
参照のこと。)
参照のこと)
.Sh 関連項目
.Xr addr2ascii 3
.Sh 歴史
関数
.Fn link_addr
および
.Fn link_ntoa
関数
.Bx 4.3-Reno
から登場しています
で登場しました
.Sh バグ
.Fn link_ntoa
の戻り値は静的なメモリ領域にあります。
@ -115,13 +115,13 @@
関数
.Fn link_addr
は、不適切な形式の入力を診断する機能が必要であり、
これを認証する明快な方法が必要となります。
これを認識するあいまいでない方法が必要となります。
.Pp
リンクソケットアドレスの
.Va sdl_len
フィールドが 0 の場合、
.Fn link_ntoa
は、インタフェースアドレスバイトの前にコロンを挿入しません。
この変換されたアドレスが最初のコロンを挿入せずに
変換されたアドレスが、最初のコロンが挿入されずに
.Fn link_addr
に渡される場合、変換後のアドレスは正しく解釈されません
に渡された場合、この関数はアドレスを正しく解釈しないでしょう

View file

@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memccpy.3 8.1 (Berkeley) 6/9/93
.\" %FreeBSD: src/lib/libc/string/memccpy.3,v 1.4.2.1 2000/04/22 17:06:38 phantom Exp %
.\"
.\" $FreeBSD$
.Dd June 9, 1993
@ -37,6 +38,8 @@
.Os
.Sh 名称
.Nm memccpy
.Sh ライブラリ
.Lb libc
.Nd 文字が見つかるまでバイト列をコピーする
.Sh 書式
.Fd #include <string.h>
@ -51,7 +54,7 @@
に複数バイトをコピーします。
文字
.Fa c
(unsigned char に変換されたものとして )
(unsigned char に変換されたものとして)
がバイト列
.Fa src
中に見つかるとコピーは中断し、バイト列
@ -71,4 +74,4 @@
.Fn memccpy
関数は、
.Bx 4.4
最初に現れました。
初めて登場しました。

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memchr.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/memchr.3,v 1.3.2.3 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -42,6 +43,8 @@
.Sh 名称
.Nm memchr
.Nd バイト列中のバイトの位置を示す
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <string.h>
.Ft void *
@ -52,18 +55,16 @@
バイト列
.Fa b
中で
(unsigned char に変換された )
(unsigned char に変換された)
.Fa c
が最初に見つかった位置を示します。
.Sh 戻り値
.Fn memchr
関数は、該当するバイトのポインタを返します。
該当するバイトが
関数は、該当するバイトのポインタ
または該当するバイトが
.Fa len
個のバイト中に存在しない時は NULL を返します。
.Sh 関連項目
.Xr index 3 ,
.Xr rindex 3 ,
.Xr strchr 3 ,
.Xr strcspn 3 ,
.Xr strpbrk 3 ,
@ -75,5 +76,5 @@
.Sh 規格
.Fn memchr
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。

View file

@ -34,7 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memcmp.3 8.1 (Berkeley) 6/4/93
.\" %Id: memcmp.3,v 1.4 1997/02/22 15:03:23 peter Exp %
.\" %FreeBSD: src/lib/libc/string/memcmp.3,v 1.5.2.2 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -42,6 +42,8 @@
.Os
.Sh 名称
.Nm memcmp
.Sh ライブラリ
.Lb libc
.Nd バイト列を比較する
.Sh 書式
.Fd #include <string.h>
@ -59,15 +61,15 @@
の長さのバイト列であるとみなされます。
.Sh 戻り値
.Fn memcmp
関数は、2 つのバイト列が一致する場合、ゼロを返します。
関数は、2 つのバイト列が一致する場合、0 を返します。
そうでない時は、最初に一致しなかった 2 つのバイト間の差
(unsigned char の値として扱われます。たとえば
.Sq Li \e\200
.Sq Li \&\e0
よりも大きくなります。 )
よりも大きくなります。)
が返されます。
長さがゼロのバイト列は常に一致します。
長さが 0 のバイト列は常に一致します。
.Sh 関連項目
.Xr bcmp 3 ,
.Xr strcasecmp 3 ,
@ -77,5 +79,5 @@
.Sh 規格
.Fn memcmp
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memcpy.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/memcpy.3,v 1.3.2.2 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -42,6 +43,8 @@
.Sh 名称
.Nm memcpy
.Nd バイト列のコピー
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <string.h>
.Ft void *
@ -71,8 +74,8 @@
.Sh 規格
.Fn memcpy
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Pp
.Sh バグ
この実装では、
@ -85,4 +88,3 @@
もっと簡単な解決策は、
.Fn memcpy
を使用しないことです。
.Pp

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memmove.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/memmove.3,v 1.3.2.2 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -41,23 +42,25 @@
.Os
.Sh 名称
.Nm memmove
.Nd バイトストリングをコピーします。
.Nd バイト文字列をコピーします。
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <string.h>
.Ft void *
.Fn memmove "void *dst" "const void *src" "size_t len"
.Sh 解説
.Fn memmove
関数は、ストリング
関数は、文字列
.Fa src
からストリング
から文字列
.Fa dst
.Fa len
バイトを
コピーします。
2 つのストリングがオーバーラップすることがありますが、コピー
は問題を起こすような方法では行なわれません
2 つの文字列がオーバーラップすることがありますが、
コピーは常に破壊されない方法で行われます
.Pp
.Sh 戻り値
.Fn memmove
@ -74,6 +77,5 @@
.Sh 規格
.Fn memmove
関数は、
.St -ansiC
に準拠しています。
.\"kuma 1999-11-10
.St -isoC
に適合しています。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memory.3 8.1 (Berkeley) 6/4/93
.\" %Id: memory.3,v 1.4 1997/02/22 15:03:13 peter Exp %
.\" %FreeBSD: src/lib/libc/stdlib/memory.3,v 1.5.2.2 2001/03/06 16:46:02 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -43,6 +43,8 @@
.Nm calloc ,
.Nm alloca
.Nd 一般的なメモリ割り当て操作
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.Ft void *
@ -70,7 +72,5 @@
この関数は、
.Fn alloca
を除き、
.St -ansiC
準拠しています。
.\"kuma 1999-11-10
.St -isoC
に適合しています。

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)memset.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/memset.3,v 1.3.2.3 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -41,7 +42,8 @@
.Os
.Sh 名称
.Nm memset
.Nd バイトストリングにバイトを書き込む
.Nd バイト文字列にバイトを書き込む
.Sh ライブラリ
.Sh 書式
.Fd #include <string.h>
.Ft void *
@ -50,10 +52,9 @@
.Fn memset
関数は、値
.Fa c
(符号なしキャラクタに変換) の
(unsigned char に変換) の
.Fa len
バイトを
ストリング
バイトを文字列
.Fa b
に書き込みます。
.Sh 戻り値
@ -66,6 +67,5 @@
.Sh 規格
.Fn memset
関数は、
.St -ansiC
に準拠しています。
.\"kuma 1999-11-10
.St -isoC
に適合しています。

View file

@ -34,9 +34,9 @@
.\" 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$
.\"
.Dd June 4, 1993
.Dt PRINTF 3
.Os
@ -51,7 +51,9 @@
.Nm vsprintf ,
.Nm vsnprintf ,
.Nm vasprintf
.Nd フォーマット済み出力変換
.Nd 書式に変換して出力
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft int
@ -79,36 +81,34 @@
.Fn printf
ファミリの関数は、以下で説明する
.Fa format
に従って出力を実行します。
に従って出力を行います。
.Fn printf
.Fn vprintf
は、
は、標準出力
.Em stdout
に出力を実行します。
に出力を行います。
.Fn fprintf
.Fn vfprintf
は、指定された出力ストリームに出力を実行します。
は、指定された出力ストリームに出力を行います。
.Fn sprintf ,
.Fn snprintf ,
.Fn vsprintf ,
.Fn vsnprintf
は、キャラクタ文字列
.Fa str
書き込みを行ないます。
出力を行います。
.Fn asprintf
.Fn vasprintf
は、
.Xr malloc 3
.Xr realloc 3
で新しい文字列をダイナミックに割り振ります。
で新しい文字列を動的に割り当てます。
.Pp
この関数は、
これらの関数は、
.Fa format
文字列の制御に従って出力を実行します。
文字列による制御に従って出力を行います。
この文字列は、その後の引数
(または
.Xr stdarg 3
@ -123,31 +123,32 @@
.Fn asprintf
.Fn vasprintf
は、文字列を収容する十分な大きさのバッファを指すポインタを
.Fa ret
引数で戻します。記憶域が不要になった場合は、このポインタを
は、整形された文字列を格納するのに十分な大きさのバッファを指すポインタを
.Fa *ret
に設定します。
割り当てられた領域が不要になった場合は、このポインタを
.Xr free 3
に渡して、割り振られた記憶域を解放してください。
十分なスペースを割り振れない場合、
に渡して解放してください。
十分な領域を割り当てられない場合、
.Fn asprintf
.Fn vasprintf
は -1 を戻し、
.Fa ret
ヌルポインタに設定します。
NULL ポインタに設定します。
.Pp
.Fn snprintf
.Fn vsnprintf
は、最大で
.Fa size Ns \-1
の文字を出力文字列に書き込みます
(size 番目の文字は最後
文字だけ出力文字列に書き込みます
(size 番目の文字は終端
.Ql \e0
になります)。
戻り値が
.Fa size
引数以上である場合は、文字列短すぎたため、
引数以上である場合は、文字列を格納するには短すぎたため、
出力された文字の一部が破棄されたことになります。
.Pp
.Fn sprintf
@ -155,17 +156,17 @@
.Fn vsprintf
は、
.Fa size
が無限であることを仮定します。
が無限である仮定します。
.Pp
フォーマット文字列は、0 以上の命令から構成されています。
整形文字列は、0 以上の命令から構成されています。
この命令には、出力ストリームに変更されずにコピーされる
通常文字
.Cm ( %
以外)、およびゼロ以上の後続引数を取り出す変換指定があります。
以外)、および 0 以上の後続の引数を取り出す変換指定があります。
それぞれの変換指定は、文字
.Cm %
で導入されます。引数は、
タイププロモーション後に変換指示子に適切に対応する必要があります。
から始まります。引数は、
(型拡張の後に) 変換指示子に適切に対応する必要があります。
.Cm %
の後には、以下が順番に現れます。
.Bl -bullet
@ -177,14 +178,14 @@
このフィールドを指定しないと、最後にアクセスされた
引数に続く引数が使用されます。引数には
.Cm 1 から始まる番号が付きます。
フォーマット文字列で、
書式指定文字列で、
アクセスできない引数がアクセスできる引数に点在する場合、
結果は不定になります。
.It
0 個以上の以下のフラグ
.Bl -hyphen
.It
値を「代替フォーム」に変換することを指定する
値を ``代替形式'' に変換することを指定する
.Cm #
文字。
.Cm c ,
@ -228,7 +229,7 @@
文字。
.Cm n
変換を除くすべての変換では、
変換値の左にブランクではなく 0 が付きます。数値変換
変換値の左に空白ではなく 0 が付きます。数値変換
.Pf ( Cm d ,
.Cm i ,
.Cm o ,
@ -243,10 +244,10 @@
.It
負のフィールド幅を示す
.Sq Cm \-
フラグ。変換値はフィールド境界の左で揃えられます。
フラグは変換された値がフィールド境界の左で揃えられる事を示します。
.Cm n
変換以外では、変換値の左にブランクか 0 が付くのではなく、
変換値の右にブランクが付きます。
変換以外では、変換値の左に空白か 0 が付くのではなく、
変換値の右に空白が付きます。
.Sq Cm \-
.Sq Cm \&0
@ -254,7 +255,7 @@
.Sq Cm \&0
が無効になります。
.It
スペース。符号付き変換
空白。符号付き変換
.Pf ( Cm d ,
.Cm e ,
.Cm E ,
@ -263,23 +264,23 @@
.Cm G ,
および
.Cm i )
で作成される正の数値の前にブランクが残ります。
で作成される正の数値の前に空白が残ります。
.It
.Sq Cm +
文字。符号付き変換で作成される数値の前に常に符号が付きます。
.Sq Cm +
スペースを両方とも指定した場合はスペースが無効になります。
空白を両方とも指定した場合は空白が無効になります。
.El
.It
任意の 10 進数文字列。最低フィールド幅を指定します。
変換値の文字数がフィールドの幅より少ない場合は、左にスペースが付いて
(左揃えフラグを指定した場合は右にスペースが付いて)
変換値の文字数がフィールドの幅より少ない場合は、左に空白が付いて
(左揃えフラグを指定した場合は右に空白が付いて)
フィールドの幅に合わせられます。
.It
ピリオド
.Sq Cm \&.
.Sq Cm .\&
の次に任意の数字文字列が続く形式の精度。
数字文字列を省略した場合、精度はゼロになります。
数字文字列を省略した場合、精度は 0 になります。
.Cm d ,
.Cm i ,
.Cm o ,
@ -372,14 +373,8 @@
変換が
.Em long double
引数に対応することを指定します。
.Em long double
の値が、
.Tn VAX
コンパイラと
.Tn Tahoe
コンパイラではサポートされていないことに注意してください。
.It
適用する変換のタイプを指定する文字。
適用する変換の型を指定する文字。
.El
.Pp
フィールド幅か精度、またはその両方は、アスタリスク
@ -392,7 +387,7 @@
負のフィールド幅は、
正のフィールド幅が続く左揃えフラグとして扱われます。
負の精度は、欠落しているものとして扱われます。
1 つのフォーマット命令に位置引数 (nn$)
1 つの書式命令に位置引数 (nn$)
と位置以外の引数が混在している場合、
結果は未定義になります。
.Pp
@ -428,7 +423,7 @@
.It Cm DOU
.Em long int
引数が、符号付き 10 進、符号なし 8 進、符号なし 10 進に、
それぞれのフォーマット
それぞれの形式
.Cm ld ,
.Cm lo ,
.Cm lu
@ -443,7 +438,7 @@
のスタイルに変換されます。
小数点以上は 1 桁で、小数点以下の桁数は精度と等しくなります。
精度が指定されていない場合は 6 が仮定されます。
精度がゼロである場合、小数点は出力されません。
精度が 0 である場合、小数点は出力されません。
.Cm E
変換では、文字
.Cm E
@ -462,7 +457,7 @@
精度が指定されていない場合は 6 が仮定されます。
精度が 0 である場合、小数点は出力されません。
小数点が出力される場合は、小数点以上に最低 1 桁が出力されます。
.It Cm g
.It Cm gG
.Em double
引数が、スタイル
.Cm f
@ -473,11 +468,11 @@
.Cm E )
で変換されます。精度は有効桁数を指定します。
精度が指定されていない場合は 6 が仮定されます。
精度がゼロである場合は 1 として扱われます。
精度が 0 である場合は 1 として扱われます。
変換後の指数が -4 より小さいか精度以上である場合は、スタイル
.Cm e
が使用されます。
後続のゼロは、結果の小数部から削除されます。
後続の 0 は、結果の小数部から削除されます。
小数点は、小数点以下に最低でも 1 桁ある場合に出力されます。
.It Cm c
.Em int
@ -488,13 +483,13 @@
.Dq Em char *
引数が、文字型の配列を指すポインタ
(文字列へのポインタ) とみなされます。
配列の文字は、最後のル文字まで出力されます
(ル文字は出力されません)。
配列の文字は、最後のル文字まで出力されます
(ル文字は出力されません)。
精度が指定されている場合、指定された数以上は出力されないので、
ル文字は必要ありません。
ル文字は必要ありません。
精度が指定されていない場合、
または精度が配列のサイズ以上である場合、
配列の最後にはル文字が必要です。
配列の最後にはル文字が必要です。
.It Cm p
.Dq Em void *
ポインタ引数が、16 進で
@ -510,7 +505,7 @@
引数は変換されません。
.It Cm %
.Ql %
が出力されます。引数は変換されません。
が出力されます。変換される引数はありません。
完全な変換指定は
.Ql %%
です。
@ -520,7 +515,6 @@
フィールドは切り捨てられません。変換結果がフィールド幅より大きい場合、
フィールドは変換結果を収容できるようになるまで拡張されます。
.Sh
.br
.Em weekday
.Em month
@ -568,27 +562,30 @@ char *newfmt(const char *fmt, ...)
および
.Fn vsprintf
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Sh 歴史
.Fn asprintf
関数と
.Fn vasprintf
関数は、GNU C ライブラリに追加されました。これは、
.Fx 2.2
で Peter Wemm <peter@FreeBSD.org> によって実現されましたが、
.An Peter Wemm Aq peter@FreeBSD.org
によって実装されましたが、
.Ox 2.3
では後に Todd C. Miller <Todd.Miller@courtesan.com>
では後に
.An Todd C. Miller Aq Todd.Miller@courtesan.com
のシステムで置き換えられました。
.Sh バグ
変換フォーマット
変換形式
.Cm \&%D ,
.Cm \&%O ,
および
.Cm \&%U
は標準的ではなく、下位互換性を保つために提供されています。
.Cm %p
フォーマットに (
形式に (
.Sq Cm 0
フラグか精度を指定することで) 0 をパディングすること、
.Cm %n
@ -605,7 +602,7 @@ char *newfmt(const char *fmt, ...)
.Fn vsprintf
では無限に長い文字列が仮定されるので、
呼び出し側では実際のスペース
呼び出し側では実際の空間
オーバフローしないように注意する必要があります。
オーバフローしないことを保証することは困難です。
安全のため、代わりに

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,19 +29,24 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)rcmd.3 8.1 (Berkeley) 6/4/93
.\" %Id: rcmd.3,v 1.7 1997/02/22 15:00:28 peter Exp %
.\" From: @(#)rcmd.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/rcmd.3,v 1.12.2.5 2000/12/08 13:49:28 ru Exp %
.\"
.\" $FreeBSD$
.Dd February 15, 1996
.Dd March 3, 2000
.Dt RCMD 3
.Os BSD 4.2
.Sh 名称
.Nm rcmd ,
.Nm rresvport ,
.Nm iruserok ,
.Nm ruserok
.Nd リモートコマンドにストリームを戻すルーチン
.Nm ruserok ,
.Nm rcmd_af ,
.Nm rresvport_af ,
.Nm iruserok_sa
.Nd リモートコマンドにストリームを返すルーチン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <unistd.h>
.Ft int
@ -52,18 +57,24 @@
.Fn iruserok "u_long raddr" "int superuser" "const char *ruser" "const char *luser"
.Ft int
.Fn ruserok "const char *rhost" "int superuser" "const char *ruser" "const char *luser"
.Ft int
.Fn rcmd_af "char **ahost" "int inport" "const char *locuser" "const char *remuser" "const char *cmd" "int *fd2p" "int
af"
.Ft int
.Fn rresvport_af "int *port" "int af"
.Ft int
.Fn iruserok_sa "const void *addr" "int addrlen" "int superuser" "const char *ruser" "const char *luser"
.Sh 解説
.Fn rcmd
関数はスーパユーザが使用するもので、予約されたポート番号に従って認証
スキームを使用してコマンドをリモートマシンで実行します。
関数はスーパユーザが使用するもので、予約されたポート番号に基づいた
認証スキームを使用してコマンドをリモートマシンで実行します。
.Fn rresvport
関数は、権利があるポートスペースのアドレスとともにソケットの記述子を戻
します。
関数は、権限があるポート空間のアドレスとともにソケットの記述子を返します。
.Fn ruserok
関数はサーバが使用するもので、
.Fn rcmd
を使用してサービスを要求するクライアントを認証します。3つすべての関数
は同じファイルに存在し、
を使用してサービスを要求するクライアントを認証します。
3 つのすべての関数は同じファイルに存在し、
.Xr rshd 8
サーバによって使用されます。
.Pp
@ -72,102 +83,158 @@
.Xr gethostbyname 3
を使用してホスト
.Fa *ahost
を調べ、ホストが存在しない場合は \-1 を戻します。ホストが存在する場合
は、ホストの標準名に
を調べ、ホストが存在しない場合は -1 を返します。
ホストが存在する場合は、ホストの標準名に
.Fa *ahost
を設定し、既知のインターネットポート
を設定し、よく知られているインターネットポート
.Fa inport
常駐するサーバとの接続を確立します。
存在するサーバとの接続を確立します。
.Pp
接続が確立されると、タイプ
.Dv SOCK_STREAM
のインターネットドメインのソケットが呼び出し側に戻され、
のインターネットドメインのソケットが呼び出し側に返され、また
.Em stdin
.Em stdout
としてリモートコマンドに指定されます。
としてリモートコマンドにされます。
.Fa fd2p
が 0以外である場合は、制御プロセスの任意のチャンネルが設定され、その記
述子が
が 0 以外である場合は、制御プロセスへ追加のチャンネルが設定され、
その記述子が
.Fa *fd2p
に配置されます。制御プロセスは、このチャンネルでコマンド(ユニット 2)
から診断出力を戻し、
に収められます。
制御プロセスは、このチャンネルでコマンド (ユニット 2) からの診断出力を返し、
また
.Tn UNIX
シグナル番号としてこのチャンネルのバイトを受け取り、コマンドのプロセスグルー
プに転送します。
シグナル番号としてこのチャンネルのバイトを受け取って、
コマンドのプロセスグループに転送します。
.Fa fd2p
0である場合は、
が 0 である場合は、
.Em stderr
(リモートコマンドのユニット 2)が
(リモートコマンドのユニット 2)
.Em stdout
と同じように作成されます。任意のシグナルをリモートプロセスに送信する準備は
されませんが、バンド外のデータを使用することで注目を得ることはできます。
と同じように作成されます。
任意のシグナルをリモートプロセスに送信する準備はされませんが、
バンド外のデータを使用することでリモートプロセスの注目を得ることはできます。
.Pp
プロトコルの詳細については、
.Xr rshd 8
を参照してください。
.Pp
.Fn rresvport
関数は、権利があるアドレスが結び付いたソケットを
入手します。このソケットは、
関数は、特権インターネットポートを持つアドレスに結び付いたソケットを
入手するのに使います。
このソケットは、
.Fn rcmd
やその他の関数での使用に適しています。権利があるインターネットポートは、
0から 1023の範囲にあるものです。この種のアドレスをソケットに結合でき
るのはスーパユーザのみです。
やその他いくつかの関数での使用に適しています。
特権インターネットポートは、 0 から 1023 の範囲にあるものです。
この種のアドレスをソケットに結合できるのはスーパユーザのみです。
.Pp
.Fn iruserok
関数と
.Fn ruserok
関数は、
.Xr gethostbyname 3
ルーチンが戻すリモートホストの IP アドレスか名前、2つのユーザ名、
ローカルユーザの名前が スーパユーザの名前であるかどうかを示すフラグを
使用します。ユーザがスーパユーザ
ルーチンが返すリモートホストの IP アドレスか名前、2 つのユーザ名、
そしてローカルユーザの名前がスーパユーザの名前であるかどうかを示すフラグを
引数にとります。
ユーザがスーパユーザ
.Em でない
場合は、
.Pa /etc/hosts.equiv
ファイルをチェックします。この検索が実行されない場合、またはこの検索で
問題が発生した場合は、ローカルユーザのホームディレクトリの
ファイルをチェックします。
この検索が実行されなかった場合、またはこの検索が成功しなかった場合は、
ローカルユーザのホームディレクトリの
.Pa .rhosts
をチェックし、サービスの要求が許可されているかどうかを確認します。
をチェックし、サービスの要求が許可されているかどうかを確認します。
.Pp
このファイルが存在しない場合や通常のファイルでない場合、またはユーザや
スーパユーザ以外がこのファイルを所有する場合、あるいは所有者以外がこの
スーパユーザ以外がこのファイルの所有者である場合、あるいは所有者以外がこの
ファイルに書き込める場合、チェックは自動的にエラーとなります。
マシン名が
.Dq Pa hosts.equiv
ファイルにリストされている場合、またはホストと
リモートユーザ名が
ファイルにリストされている場合、またはホストとリモートユーザ名が
.Dq Pa .rhosts
ファイルに存在する場合は 0が戻されます。その
他の場合、
ファイルに存在する場合は 0 が返されます。
その他の場合、
.Fn iruserok
.Fn ruserok
\-1 を戻します。
-1 を返します。
.Xr gethostname 3
で入手したローカルドメインがリモートドメインと同じである場合は、マシン
名のみを指定する必要があります。
で入手したローカルドメインがリモートドメインと同じである場合は、
マシン名のみを指定する必要があります。
.Pp
.Fn iruserok
関数は、セキュリティの理由で高く評価されます。
関数は、セキュリティ上の理由で強く推奨されます。
.Fn ruserok
関数は DNS 全体を信用する必要があり、侵害される可能性がありますが、
.Fn iruserok
は最大でもローカル DNS を信頼する必要しかありません。
.Sh 診断
.Fn rcmd
関数は、問題がなければ有効なソケット記述子を戻します。エラーが
発生した場合は \-1 を戻し、診断メッセージを標準エラーに出力します。
はせいぜいローカル DNS を信頼する必要しかありません。
.Pp
.Dq Li _af
.Dq Li _sa
といった接尾辞のついた関数、たとえば
.Fn rcmd_af ,
.Fn rresvport_af
.Fn iruserok_sa
などは、IPv6 と IPv4 ポートを扱えることを除いて、
対応する接尾辞のない関数と同じ動作をします。
.Pp
.Dq Li _af
接尾辞は、アドレスファミリ (下記参照) を指定するために使われる
.Fa af
引数が加わっていることを意味しています。
.Fa af
引数の拡張は、バイナリアドレス引数を持たない関数に対して実装されています。
バイナリアドレスの代わりに
.Fa af
引数はどのアドレスファミリが必要かを指定します。
.Pp
.Dq Li _sa
接尾辞は、関数が汎用ソケットアドレスと長さを
引数に持っていることを意味しています。
ソケットアドレスはプロトコルに依存しないデータ構造なので、
必要に応じて IPv4 と IPv6 のソケットアドレスを渡すことができます。
.Fa sa
引数の拡張は、プロトコルに依存したバイナリアドレス引数を渡す関数に対して
実装されています。
引数は、汎用的な方法でいくつものアドレスファミリをサポートするように、
更に汎用的なアドレス構造に置き換えられる必要があります。
.Pp
.Dq Li _af
接尾辞も
.Dq Li _sa
接尾辞もついていない関数は、IPv6 と IPv4 の両方とも扱える
.Fn ruserok
関数を除いて、IPv4 のみで動作します。
アドレスファミリを切替えるには、
.Fa af
引数に
.Dv AF_INET
もしくは
.Dv AF_INET6
を設定しなければなりません。
.Fn rcmd_af
に対しては、
.Dv PF_UNSPEC
も許されます。
.Sh 診断
成功した場合、
.Fn rcmd
関数は有効なソケット記述子を返します。
エラーが発生した場合は -1 を返し、診断メッセージを標準エラーに出力します。
.Pp
成功した場合、
.Fn rresvport
関数は、問題がなければ有効で結合したソケット記述子を戻します。エラーが
発生した場合は \-1 を戻し、エラーの原因に従ってグローバル変数
関数は有効で結合したソケット記述子を返します。
エラーが発生した場合は -1 を返し、エラーの原因に従ってグローバル変数
.Va errno
を設定します。「すべてのネットワークポートが使用されている」ことを示す
場合は、エラーコード
.Dv EAGAIN
が設定されます。
「すべてのネットワークポートが使用されている」ことを示す場合は、
エラーコード
.Er EAGAIN
がオーバロードされます。
.Sh 関連項目
.Xr rlogin 1 ,
@ -177,7 +244,31 @@
.Xr rexecd 8 ,
.Xr rlogind 8 ,
.Xr rshd 8
.Pp
.Rs
.%A W. Stevens
.%A M. Thomas
.%T "Advanced Socket API for IPv6"
.%O RFC2292
.Re
.Rs
.%A W. Stevens
.%A M. Thomas
.%A E. Nordmark
.%T "Advanced Socket API for IPv6"
.%O draft-ietf-ipngwg-rfc2292bis-01.txt
.Re
.Sh 歴史
この関数は、
れらのほとんどの関数は、
.Bx 4.2
に追加されました。
で登場しました。
.Fn rresvport_af
は RFC2292 で登場し、 Hydrangea IPv6 プロトコルスタックキットのために
WIDE プロジェクトによって実装されました。
.Fn rcmd_af
は draft-ietf-ipngwg-rfc2292bis-01.txt で登場し、
WIDE/KAME IPv6 プロトコルスタックキットで実装されました。
.Fn iruserok_sa
は IETF の ipngwg メーリングリストの議論で登場し、
.Fx 4.0
で実装されました。

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,7 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)resolver.3 8.1 (Berkeley) 6/4/93
.\" @(#)resolver.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/net/resolver.3,v 1.11.2.3 2001/03/06 16:45:59 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
@ -44,6 +45,8 @@
.Nm dn_comp ,
.Nm dn_expand
.Nd リゾルバルーチン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <netinet/in.h>
@ -102,87 +105,95 @@
.Fa "int length"
.Fc
.Sh 解説
このルーチンは、インターネットドメインネームサーバを使用し、クエリと
応答メッセージの作成、送信、解釈を行います。
れらのルーチンは、インターネットドメインネームサーバを使用し、
クエリと応答メッセージの作成、送信、解釈を行います。
.Pp
リゾルバルーチンが使用するグローバル設定と状態の情報は、構造体
リゾルバルーチンが使用するグローバル設定と状態の情報は、構造体
.Em _res
に保存されます。ほとんどの値は、適切なデフォルトになっているので無視で
きます。
に保存されます。
ほとんどの値は、適切なデフォルト値になっているので無視できます。
.Em _res.options
に保存されているオプションは、
に保存されるオプションは、
.Pa resolv.h
で以下のように定義されています。オプションは、有効なオプションのビット
ワイズ論理和を含む、単純なビットマスクとして保存されています。
で以下のように定義されています。
オプションは、有効なオプションのビット論理和をとった、
単純なビットマスクとして保存されています。
.Bl -tag -width RES_DEFNAMES
.It Dv RES_INIT
初期ネームサーバアドレスとデフォルトドメイン名が初期化されている場合は
真です(
真です (
.Fn res_init
が呼び出された場合など)。
.It Dv RES_DEBUG
デバッグメッセージを出力します。
.It Dv RES_AAONLY
信頼できる応答のみを受け入れます。このオプションを使用した場合は、信頼
できる応答かエラーが見つかるまで
信頼できる応答のみを受け入れます。
このオプションを使用した場合、信頼できる応答かエラーが見つかるまで
.Fn res_send
を続ける必要があります。現在のところ、これは実現されていません。
.It Dv RES_USEVC UDP
データグラムの代わりに
を続ける必要があります。
現在のところ、これは実装されていません。
.It Dv RES_USEVC
UDP データグラムの代わりに
.Tn TCP
接続をクエリに使用します。
.It DV RES_STAYOPEN
.Dv RES_USEVC
とともに使用し、クエリ間で
.Tn TCP
接続を開いたままに保ちます。多くのクエリを定期的に行なうプログラムのみ
で便利です。
接続を開いたままに保ちます。
多くのクエリを定期的に行うプログラムのみで便利です。
通常の使用には
.Tn UDP
は通常モードである必要があります。
を使うべきです。
.It Dv RES_IGNTC
現在は使用されません(TCPで再試行しないなど、トランケーションエラーを無
視)。
現在は使用されません (TCP で再試行しないなど、トランケーションエラーを無視)。
.It Dv RES_RECURSE
クエリの反復要求ビットを設定します。これがデフォルトです。(
クエリの反復要求ビットを設定します。
これがデフォルトです (
.Fn res_send
は反復クエリを行なわず、ネームサーバが反復を処理することを期待します。)
は反復クエリを行なわず、ネームサーバが反復を処理することを期待します)
.It Dv RES_DEFNAMES
設定すると、
.Fn res_search
がシングルコンポーネント名(ドットを含まない名前)にデフォルトのドメイン
名を追加するようになります。このオプションはデフォルトで有効になってい
ます。
がシングルコンポーネント名 (ドットを含まない名前)
デフォルトのドメイン名を追加するようになります。
このオプションはデフォルトで有効になっています。
.It Dv RES_DNSRCH
このオプションを設定すると、
.Fn res_search
が、現在のドメインと親ドメインでホスト名を検索するようになります。
.Xr hostname 7
を参照してください。これは、標準ホスト検索ルーチン
を参照してください。
これは、標準ホスト検索ルーチン
.Xr gethostbyname 3
によって使用されます。このオプションはデフォルトで有効になっています。
によって使用されます。
このオプションはデフォルトで有効になっています。
.It Dv NOALIASES
このオプションは、
.Dq Ev HOSTALIASES
環境変数が制御するユーザレベルエイリアシング機能を無効にします。ネット
ワークデーモンでは、このオプションを設定する必要があります。
環境変数によって制御されるユーザレベルのエイリアシング機能を無効にします。
ネットワークデーモンでは、このオプションを設定する必要があります。
.El
.Pp
.Fn res_init
ルーチンは、設定ファイルを読み込み(設定ファイルが存在する場合。
.Xr Resolver 5
参照)、デフォルトドメイン名、検索リスト、ローカルネームサーバのインター
ネットアドレスを入手します。サーバが設定されていない場合は、リゾルバを
実行しているホストが試されます。現在のドメイン名は、設定ファイルで指定
されていない場合、ホスト名で定義されますが、環境変数
ルーチンは、設定ファイルを読み込み (設定ファイルが存在する場合。
.Xr resolver 5
参照)、デフォルトドメイン名、検索リスト、ローカルネームサーバの
インターネットアドレスを入手します。
サーバが設定されていない場合は、リゾルバを実行しているホストが試されます。
現在のドメイン名は、設定ファイルで指定されていない場合、
ホスト名で定義されますが、環境変数
.Ev LOCALDOMAIN
で上書きされることがあります。検索リストをプロセスごとに上書きする場合
は、ブランクで区切られた複数のトークンをこの環境変数に含めます。これは、
設定ファイルの
で上書きすることもできます。
検索リストをプロセスごとに上書きする場合は、
ブランクで区切られた複数のトークンをこの環境変数に含めます。
これは、設定ファイルの
.Em search
コマンドに似ています。別の環境変数
コマンドに似ています。
別の環境変数
.Dq Ev RES_OPTIONS
を設定すれば、特定の内部リゾルバオプションを上書きできます。内部リゾル
バオプションは、上書きされなければ、
を設定すれば、特定の内部リゾルバオプションを上書きできます。
内部リゾルバオプションは、上書きされなければ、
.Em _res
構造体のフィールドを変更することで設定されるか、設定ファイルの
.Em options
@ -190,20 +201,21 @@
.Dq Ev RES_OPTIONS
環境変数のシンタックスについては、
.Xr resolver 5
を参照してください。通常の場合、初期化は以下のルーチンを初めて呼び出し
たときに実行されます。
を参照してください。
通常の場合、初期化は以下のルーチンを初めて呼び出したときに実行されます。
.Pp
.Fn res_query
関数は、サーバクエリメカニズムのインタフェースを提供するもので、クエリ
の作成、作成されたクエリのローカルサーバへの送信、リスポンスの待機、応
答の予備チェックを行います。クエリは、指定された完全に適格なドメイン
関数は、サーバクエリメカニズムのインタフェースを提供するもので、
クエリの作成、作成されたクエリのローカルサーバへの送信、レスポンスの待機、
答の予備チェックを行います。
クエリは、指定された完全に適格なドメイン
.Fa dname
、指定された
に対する、指定された
.Fa type
.Fa class
の情報を要求します。応答メッセージは、
の情報を要求します。
応答メッセージは
.Fa answer
バッファに残され、呼び出し側が指定する
.Fa anslen
@ -212,12 +224,12 @@
.Fn res_search
ルーチンは、
.Fn res_query
と同じようにクエリの作成とリスポンスの待機を行ないますが、
と同じようにクエリの作成とレスポンスの待機を行いますが、それに加えて
.Dv RES_DEFNAMES
.Dv RES_DNSRCH
オプションが制御するデフォルトと検索規則も実現します。最初の問題がない
応答が戻されます。
オプションによって制御されるデフォルトと検索規則も実装しています。
このルーチンは最初に成功した応答を返します。
.Pp
残りのルーチンは、
.Fn res_query
@ -225,50 +237,55 @@
.Fn res_mkquery
関数は、標準クエリメッセージを作成して
.Fa buf
に配置し、クエリのサイズを戻します。クエリが
に配置し、クエリのサイズを返します。
クエリが
.Fa buflen
より長い場合は \-1 を戻します。クエリタイプ
より長い場合は -1 を返します。
クエリタイプ
.Fa op
は、通常の場合
.Dv QUERY
ですが、
.Aq Pa arpa/nameser.h
で定義されているクエリタイプにできます。クエリのドメイン名は
で定義されているどのクエリタイプにもできます。
クエリのドメイン名は
.Fa dname
で指定します。
.Fa Newrr
.Fa newrr
は現在使用されていませんが、更新メッセージを作成するためのものです。
.Pp
.Fn res_send
ルーチンは、事前フォーマット済みクエリを送信し、応答をします。
ルーチンは、事前フォーマット済みクエリを送信し、応答をします。
.Dv RES_INIT
が設定されていない場合は
.Fn res_init
を呼び出します。ローカルネームサーバへのクエリの送信、およびタイムアウ
トと再試行の処理も行ないます。応答メッセージの長さを戻しますが、エラー
がある場合は \-1 を戻します。
を呼び出します。
ローカルネームサーバへのクエリの送信、およびタイムアウトと
再試行の処理も行います。
応答メッセージの長さを返しますが、エラーがあった場合は -1 を返します。
.Pp
.Fn dn_comp
関数は、ドメイン名
.Fa exp_dn
を圧縮し、
.Fa comp_dn
に保存します。圧縮された名前のサイズを戻しますが、エラーがある場合は
\-1 を戻します。
に保存します。
圧縮された名前のサイズを返しますが、エラーがあった場合は -1 を返します。
.Fa comp_dn
が指す配列のサイズは
.Fa length
で指定します。圧縮では、現在のメッセージで以前に圧縮された名前を指すポ
インタ
で指定します。
圧縮の際、現在のメッセージでそれまでに圧縮された名前を指すポインタ
.Fa dnptrs
の配列を使用します。最初のポインタはメッセージの最初を指し、リストは
の配列を使用します。
最初のポインタはメッセージの最初を指し、リストは
.Dv NULL
で終わります。配列の制限は
.Fa lastdnptr
で指定します。
.Fn dn_comp
の副作用は、名前が圧縮されたときにメッセージに挿入されるラベルのポイン
タのリストが更新されることです。
の副作用は、名前が圧縮されたときにメッセージに挿入されるラベルのポインタの
リストが更新されることです。
.Em dnptr
.Dv NULL
@ -281,21 +298,23 @@
.Fn dn_expand
エントリは、圧縮されたドメイン名
.Fa comp_dn
を完全ドメイン名に展開します。圧縮された名前は、クエリか応答メッセージに
含まれます。
を完全ドメイン名に展開します。
圧縮された名前は、クエリもしくは応答メッセージに含まれます。
.Fa msg
は、メッセージの最初を指すポインタです。展開された名前は、
は、メッセージの最初を指すポインタです。
展開された名前は、
.Fa exp_dn
が示すバッファに配置されます。バッファのサイズ
が示すサイズ
.Fa length
です。圧縮された名前のサイズが戻されますが、エラーがある場合は \-1 が
戻されます。
のバッファに配置されます。
圧縮された名前のサイズが返されますが、
エラーがあった場合は -1 が返されます。
.Sh 関連ファイル
.Bl -tag -width Pa
/etc/resolv.conf
.Bl -tag -width /etc/resolv.conf
.It Pa /etc/resolv.conf
設定ファイル。
.Xr resolver 5
を参照してください
を参照のこと
.El
.Sh 関連項目
.Xr gethostbyname 3 ,