名称
net_aton(), net_ntoa() ― ネットワーク ステーションアドレス文字列変換ルーチン
構文
#include <sys/netio.h>
char *net_aton(char *dstr, const char *sstr, int
size);
char *net_ntoa(char *dstr, const char *sstr, int
size);
説明
net_aton() と net_ntoa() は、ステーションアドレスを
16 進数、8 進数、10 進数、そしてバイナリ形式間で変換します。
| net_aton() | | 16 進数、8 進数、10 進数形式のアドレスを 1 バイナリ形式のアドレスに変換 |
| net_ntoa() | | 1 バイナリ形式のアドレスを ASCII 16 進数形式のアドレスに変換 |
これらのルーチンは両方とも標準の C ライブラリで提供され、コンパイル時に自動的にロードされます。
net_aton
パラメータ
以下のパラメータは net_aton() に用いられます。
| dstr | | 関数の返す 1 バイナリアドレスへのアドレス |
| sstr | | ステーションアドレス (イーサーネット、または IEEE
802.3) の null で終了する ASCII 表現へのポインター。 アドレスには、通常
C 言語で行われるように、8 進数、10 進数、そして 16 進数が使えます (つまり、0x
か 0X で始まる 16 進数、0 で始まる 8 進数、それ以外の文字で始まる
10 進数が使えます)。 |
| size | | dstr に返す 1 バイナリアドレスの長さ。 イーサーネット/IEEE 802.3
アドレスではこの長さは 6 です。 |
net_ntoa
パラメータ
net_ntoa() は 48 ビットの 1 バイナリ ステーションアドレスを、それと等価な
ASCII 形式の 16 進数に変換します。 以下のパラメータは net_ntoa() に用いられます。
| dstr | | 関数の返す ASCII 形式の 16 進数アドレスへのポインター。 dstr は null で終了する表現で、必要ならば頭部に 0 を挿入します。
変換したアドレスを格納するために、 dstr には、少なくとも (2 × size + 3) バイトは必要です。 |
| sstr | | バイナリ形式で表現したステーションアドレスへのポインター |
| size | | sstr の長さ |
戻り値
エラーが発生すると net_aton() と net_ntoa() は
NULL を返します。
例
#include <netio.h>
#define destination_addr "0x00DD0002AD00"
...
struct fis arg;
char str[16];
...
(void) net_aton(arg.value.s, destination_addr, 6);
/* arg.value.s = "<48-bit binary value>" */
(void) net_ntoa(str, arg.value.s, 6);
/* str = "0x00DD0002AD00" */
著者
net_aton() は HP で開発されました。