tail head cat sleep
QR code linking to this page

manページ  — LINK_ADDR

名称

link_addr, link_ntoa – リンクレベルアクセス用基本アドレス指定ルーチン

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/types.h>
#include <sys/socket.h>
#include <net/if_dl.h>

void
link_addr(const char *addr, struct sockaddr_dl *sdl);

char *
link_ntoa(const struct sockaddr_dl *sdl);

解説

link_addr() ルーチンは、リンクレベルアドレスを表す文字列を解釈し、 システムコールで使用するのに適したバイナリ情報を返します。 link_ntoa() ルーチンは、リンクレベルアドレスを引数に取り、リンクレベルアドレス自身、 存在する場合はそのインタフェース名や番号などを含んだ、現在の情報を示す ASCII 文字列を返します。 この機能はまだ試用段階であり、変更される可能性があります。

link_addr() に対して、文字列 addr には、 ifconfig(8) の第一引数となりうる "name unit-number" という形の任意指定のネットワークインタフェース識別子を含むことができ、 その後にコロン、そしてピリオドで区切られた 16 進数の組の形の インタフェースアドレスが続きます。 それぞれの組はアドレスの 1 バイトを示しており、 アドレスバイトは左から右へ、低位のバイトから高位のバイトへと占められます。

つまり le0:8.0.9.13.d.30 は 1 つ目の Lance イーサネットインタフェースへ転送される イーサネットアドレスを表します。

これらの関数を直接使うのは避けられる傾向があり、むしろ addr2ascii(3) インタフェースが使われます。 しかし、このインタフェースはまだ広くは実装されていないので、 移植性のあるプログラムでは、このインタフェースに依存するわけにはいきません。

戻り値

link_ntoa() は、常にヌルで終了する文字列を返します。 link_addr() 関数は戻り値を返しません ( バグ 参照のこと)。

関連項目

addr2ascii(3)

歴史

link_addr() および link_ntoa() 関数は BSD 4.3 Reno で登場しました。

バグ

link_ntoa() の戻り値は静的なメモリ領域にあります。

関数 link_addr() は、不適切な形式の入力を診断する機能が必要であり、 これを認識するあいまいでない方法が必要となります。

リンクソケットアドレスの sdl_len フィールドが 0 の場合、 link_ntoa() は、インタフェースアドレスバイトの前にコロンを挿入しません。 変換されたアドレスが、最初のコロンが挿入されずに link_addr() に渡された場合、この関数はアドレスを正しく解釈しないでしょう。


LINK_ADDR (3) June 17, 1996

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase.
— John Lions