inet_ntoa
IPv4アドレスへのポインタのドットで区切った4組の10進数文字列を返します。
string inet_ntoa(void *ptr)
inet_ntoa
関数は、IPv4アドレス(ptr)へのポインタをとり、ドット区切りの10進数文字列として返します。返される文字列には、スクラッチ・メモリーからメモリーが割り当てられます。そのためこれは節の処理中にのみ有効です。使用できるスクラッチ・メモリーが不足している場合、inet_ntoa
は実行されず、エラーが生成されます。詳細は、inet(3)
マニュアル・ページを参照してください。
例7-21 inet_ntoaを使用してIPv4アドレスへのポインタのドット付きIPv4アドレス表記を返す方法
この例では、IPアドレス・ポインタがスクラッチ・メモリーに作成され、それをinet_ntoa
関数が処理して文字列値を返すことができるように移入されます。
typedef vmlinux`__be32 ipaddr_t;
ipaddr_t *ip4a;
BEGIN
{
ip4a = alloca(sizeof(ipaddr_t));
*ip4a = 0x0100007f;
printf("%s\n", inet_ntoa(ip4a));
exit(0);
}