inet_pton和inet_nton函数

来源:互联网 发布:cf2016年刷枪软件 编辑:程序博客网 时间:2024/06/10 12:50

问题一:inet—pton和inet--nton函数说明:

字母p和n分别代表presentation和numeric。地址的表达式(presentation)通常是ASCII串,数值(numeric)格式则是存在于套接口地址结构中的二进制值。

#include<arpa/inet.h>

int inet_pton(int family,const char *strptr,void *addrptr);

                                           返回:1——成功,0----输入不是有效的表达式,-1——出错;

const char*inet_ntop(int family,const void *addrptr,char *strptr,size_t len);

                                           返回:指向结果的指针——成功,NULL——出错;

两个函数的参数family既可以是AF_INET,也可以是AF_INET6.如果以不被支持的地址作为family参数,两个函数都返回错误,并将errno置为EAFNOSUPPORT.

第一个函数转换有指由指针strptr所指的串,通过指针addrptr存储二进制的结果。如果成功,则返回值为一,如果对于指定的family输入串不是有效的表达格式,则返回值为0.

inet_ntop进行相反的转换,即从数值格式(addrptr)到表达格式(strptr)进行转换。参数len是目标的大小,以免函数溢出其调用者的缓冲区。为有助于规定这个大小,在头文件<netinet/in.h>中有如下定义:

#define INET_ADDRSTRLEN 16

#define INET6_ADDRSTRLEN 46

如果len太小,无法容纳表达格式结果(包括终止的空字符),则返回一个空指针,并置errno为ENOSPC.

函数inet_ntop的参数strptr不能是个空指针,调用者必须为目标分配内存并指定大小。成功时,此指针即函数的返回值。

0 0
原创粉丝点击