2011-08-01 10 views
0

数値アドレス使用「「構造体のin6_addr」」で計算されたネットワークアドレスを格納するためにはinet_ptonまたは

int inet_pton(int af, const char * src, void * dst); 

にテキストホストアドレスを変換し、私は、この機能の二つの異なる使い方を見てきました以下:

例1:

http://man7.org/tlpi/code/online/book/sockets/i6d_ucase_cl.c.html

struct sockaddr_in6 svaddr; 
... 
inet_pton(AF_INET6, argv[1], &svaddr.sin6_addr) 

例2:

http://www.qnx.com/developers/docs/6.4.1/neutrino/lib_ref/i/inet_pton.html

struct in6_addr in6addr; 
... 
inet_pton(AF_INET6, IN6ADDR, &in6addr)) 

1は正しいですか?それらのすべてが正しい場合、なぜそれぞれが変換されたネットワークアドレスを完全に異なるデータ構造に格納するのですか?

答えて

1

同じ構造です:svaddr.sin6_addrstruct in6_addrです。

netinet/in.h

ヘッダは、少なくとも以下のメンバーが挙げられるものとする 、sockaddr_in6構造体を定義しなければならない、という事実の母校として

... 
struct in6_addr sin6_addr  IPv6 address. 

を十分な大きさの意志を持っている何かdo、inet_ptonは:

int inet_pton(int af, const char *restrict src, void *restrict dst); 
               ^anything 
です。
関連する問題