inet_pton和inet_nton函数

问题一: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不能是个空指针,调用者必须为目标分配内存并指定大小。成功时,此指针即函数的返回值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值