2004.09.07,Tue - 对inet_ntoa的看法

原创 2004年09月07日 18:36:00
char FAR * inet_ntoa (
  struct in_addr in 
);
这个函数可以把IPv4地址数据转换为字符串的形式。
看着这个函数总觉得有些别扭,心想对于一般的Win32 API而言,返回字符串的形式应该是类似这个样子:
returntype SomeFunction(LPTSTR lpBuffer);
为了搞清楚它里面的秘密,我写了如下的代码进行测试:
struct in_addr ip;
ip.S_un.S_addr = 0x12345678;
char * str = inet_ntoa(ip);
MessageBox(NULL, str, "IP", 0);
ip.S_un.S_addr = 0x87654321;
inet_ntoa(ip);
MessageBox(NULL, str, "IP", 0);
执行的结果是str所指向的内存空间的内容改变了。如此看来,这个函数的实现应该是这个样子:
char FAR * inet_ntoa (struct in_addr in)
{
  static char strRet[16];
  // ...
  return strRet;
}
老实说,我觉得这样的代码不够科学,对外部代码的耦合性不是很好,而且浪费内存。

mysql 使用inet_aton和inet_ntoa处理ip地址数据

本文将介绍如何在数据库中使用合适格式保存ip地址数据,并能方便的对ip地址进行比较的方法。...
  • fdipzone
  • fdipzone
  • 2015年10月31日 12:26
  • 11927

函数inet_addr和inet_ntoa,本机字节顺序与网络字节顺序的转函数的总结

inet_addr  : 将"数字+句点"的格式的IP地址转换到unsigned long中,返回值已经是按照网络字节顺序了 相反inet_ntoa :把类型为struct in_addr的数据转化...
  • dyzhen
  • dyzhen
  • 2013年05月21日 15:56
  • 1658

inet_ntoa函数陷阱

今天编程时遇到一个很诡异的问题,是关于inet_ntoa函数的。 先看一个测试程序 #include stdio.h> #include sys/socket.h> #include ne...
  • zyboy2000
  • zyboy2000
  • 2016年03月24日 18:17
  • 1717

关于inet_ntoa返回的值是静态变量

  • 2011年06月13日 23:29
  • 895B
  • 下载

关于inet_ntoa函数的思考

#include #include #include #include #include #include void main() { struct in_addr addr1...
  • u014338577
  • u014338577
  • 2016年04月23日 17:32
  • 251

inet_ntoa问题记录

今天在写代码时遇到一个问题并于在一个函数传递参数时连续调用inet_ntoa时出现的,下面是问题的模拟代码: 16 char ip_addr1[]= "192.168....
  • sahusoft
  • sahusoft
  • 2012年05月10日 23:31
  • 956

htons()、htonl()、inet_ntoa()、ntohs()、ntohl()说明

1.htons() htons是将整型变量从主机字节顺序转变成网络字节顺序, 就是整数在地址空间存储方式变为:高位字节存放在内存的低地址处。 网络字节顺序是TCP/IP中规定好的一种数...
  • qq_18297893
  • qq_18297893
  • 2016年07月01日 21:07
  • 211

socket 编程下 inet_ntoa() 函数的使用与注意事项

函数声明:char *inet_ntoa (struct in_addr);   返回点分十进制的字符串在静态内存中的指针。   所在头文件:   //end linux 下 ...
  • a4150902
  • a4150902
  • 2012年04月01日 17:25
  • 18943

关于 inet_ntoa函数

关于 inet_ntoa函数 标签: 网络编程 2016-09-01 11:57 13人阅读 评论(0) 收藏 举报  分类: 网络编程(5)  版权声明...
  • jfkidear
  • jfkidear
  • 2016年10月18日 23:03
  • 392

关于 inet_ntoa函数

函数声明:char *inet_ntoa (struct in_addr);   返回点分十进制的字符串在静态内存中的指针。 linux下:所在头文件:include “stdafx.h”inc...
  • djb100316878
  • djb100316878
  • 2016年09月01日 11:57
  • 670
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2004.09.07,Tue - 对inet_ntoa的看法
举报原因:
原因补充:

(最多只允许输入30个字)