日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ETHERS(3) FreeBSD ライブラリ関数マニュアル ETHERS(3)
名称
ethers, ether_line, ether_aton, ether_aton_r, ether_ntoa, ether_ntoa_r,
ether_ntohost, ether_hostton -- イーサネットアドレス変換と検索ルーチン
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#include <sys/types.h>
#include <sys/socket.h>
#include <net/ethernet.h>
int
ether_line(const char *l, struct ether_addr *e, char *hostname);
struct ether_addr *
ether_aton(const char *a);
struct ether_addr *
ether_aton_r(const char *a, struct ether_addr *e);
char *
ether_ntoa(const struct ether_addr *n);
char *
ether_ntoa_r(const struct ether_addr *n, char *buf);
int
ether_ntohost(char *hostname, const struct ether_addr *e);
int
ether_hostton(const char *hostname, struct ether_addr *e);
解説
これらの関数は、ヘッダファイル <net/ethernet.h> で定義されている
ether_addr 構造体を使用してイーサネットアドレスで動作します:
/*
* イーサネット (MAC) アドレスのバイト数
*/
#define ETHER_ADDR_LEN 6
/*
* 48 ビットイーサネットアドレスの構造体
*/
struct ether_addr {
u_char octet[ETHER_ADDR_LEN];
};
関数 ether_line() は、ethers(5) 形式の ASCII 文字列である、l をスキャン
し、e を、文字列で指定されたイーサネットアドレスに設定し、h をホスト名に
設定します。この関数は、/etc/ethers からそれらの構成要素の部分に行を解析
するために使用されます。
ether_aton() と ether_aton_r() 関数は、イーサネットアドレスの ASCII 表現
を ether_addr 構造体に変換します。同様に、ether_ntoa() と ether_ntoa_r()
関数は、ether_addr 構造体として指定されたイーサネットアドレスを ASCII 文
字列に変換します。
ether_ntohost() と ether_hostton() 関数は、イーサネットアドレスを
/etc/ethers データベースで指定されるような、それらの対応しているホスト名
にマップします。ether_ntohost() 関数は、イーサネットアドレスからホスト名
に変換し、ether_hostton() は、ホスト名からイーサネットアドレスに変換しま
す。
戻り値
ether_line() 関数は、成功すれば、0 を返し、供給された行 l のいずれかの部
分を解析することができなかったなら、0 以外を返します。それは、供給された
ether_addr 構造体 e に抽出されたイーサネットアドレスと供給された文字列 h
のホスト名を返します。
成功すれば、ether_ntoa() と ether_ntoa_r() 関数は、イーサネットアドレスの
ASCII 表現を含んでいる文字列へのポインタを返します。供給された ether_addr
構造体を変換することができないなら、NULL ポインタを返します。ether_ntoa()
は、静的なバッファに結果を格納します。ether_ntoa_r() は、ユーザによって渡
されたバッファに結果を格納します。
同じように、ether_aton() と ether_aton_r() は、成功するなら、ether_addr
構造体へのポインタを返し、失敗するなら、NULL ポインタを返します。
ether_aton() は、静的なバッファに結果を格納します。ether_aton_r() は、
ユーザによって渡されたバッファに結果を格納します。
ether_ntohost() と ether_hostton() 関数の両方は、成功すれば、0 を返し、そ
れらが、/etc/ethers データベースに一致するものを見つけることができなかっ
たなら、0 以外を返します。
注
ユーザは、ether_line(), ether_ntohost() と ether_hostton() 関数へ渡された
ホスト名の文字列が返されたホスト名を含むために十分に大きいことを保証しな
ければなりません。
NIS の相互作用
/etc/ethers が、その中に単一の + がある行を含んでいるなら、
ether_ntohost() と ether_hostton() 関数は、/etc/ethers ファイルのデータに
加えて NIS ethers.byname と ethers.byaddr マップを調べることを試みます。
関連項目
ethers(5), yp(8)
歴史
ethers ライブラリ関数のこの特別の実装は、FreeBSD 2.1 のために書かれ、はじ
めて登場しました。スレッドセーフ関数の変異型は、FreeBSD 7.0 ではじめて登
場しました。
バグ
ether_aton() と ether_ntoa() 関数は、次に、それらが呼び出されるとき上書き
される静的なメモリ領域に格納される値を返します。
ether_ntoa_r() は、バッファ長ではなく、文字バッファへのポインタを受け取り
ます。呼び出し側は、バッファオーバフローを避けるために適切な空間がバッ
ファで利用可能であることを保証しなければなりません。
FreeBSD 13.2 October 30, 2007 FreeBSD 13.2