名前

if_nametoindex, if_indextoname - ネットワークインターフェースの名前とインデックスのマッピングを行う

書式

#include <net/if.h>
unsigned int if_nametoindex(const char *ifname);
char *if_indextoname(unsigned int ifindex, char *ifname);

説明

if_nametoindex() 関数は、 名前が ifname のネットワークインターフェースのインデックスを返す。
if_indextoname() 関数は、 インターフェースのインデックスが ifindex に対応するネットワークインターフェースの名前を返す。 名前は ifname が指すバッファーに格納される。 バッファーは少なくとも IF_NAMESIZE バイトの領域が必要である。

返り値

成功した場合、 if_nametoindex() はネットワークインターフェースのインデックス番号を返す。エラーの場合、 0 を返し、 errno を適切に設定にする。
成功した場合には if_indextoname() は ifname を返す。エラー時には NULL が返され、 errno が適切に設定される。

エラー

if_nametoindex() が失敗した場合には以下の errno が設定される。
ENODEV
指定された名前を持つインターフェースがない。
if_indextoname() は以下の errno で失敗する場合がある。
ENXIO
インデックスに対応するインターフェースがない。
if_nametoindex() と if_indextoname() は、 socket(2)ioctl(2) に対して規定されているエラーのいずれかで失敗する場合がある。

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性
if_nametoindex(), if_indextoname() Thread safety MT-Safe

準拠

POSIX.1-2001, POSIX.1-2008, RFC 3493.
この関数は BSDi 初めて登場した。

関連項目

getifaddrs(3), if_nameindex(3), ifconfig(8)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

Recommended readings

Pages related to if_indextoname you should read also: