inet_ntop 为什么要传入一个缓冲区?


inet_ntop 把数字转化为字符串表示,返回的就是一个字符串指针,为什么要传入一个缓冲区呢?

网络 c unix socket

taneya 9 years, 10 months ago

 const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);

  这个函数转换网络二进制结构到ASCII类型的地址,参数的作用和上面相同,只是多了一个参数socklen_t
cnt,他是所指向缓存区dst的大小,避免溢出,如果缓存区太小无法存储地址的值,则返回一个空指针,并将errno置为ENOSPC

我想你说的是 dst 这个缓冲区,dst是用作存储转换结果的空间,需要由外部分配后再传入函数.如果只在函数中分配的话,函数返回后这个空间就会失效了

season answered 9 years, 10 months ago

Your Answer