#include <arpa/inet.h>
#include <iostream>
using namespace std;
int main()
{
//将点分十进制表示的IPV4地址转换为用网络字节序表示的IPv4地址
in_addr_t n1 = inet_addr("1.2.3.4");
struct in_addr stAddr2;
inet_aton("10.194.71.60", &stAddr2);
//定义in_addr结构体
struct in_addr stAddr1;
stAddr1.s_addr = n1;
//将网络字节序表示的IP地址转换为点分十进制字符串的IPv4地址
char *p1 = inet_ntoa(stAddr1);
char *p2 = inet_ntoa(stAddr2);
//可以看出p1==p2,因此inet_ntoa是不可重入函数
cout << p1 << endl;
cout << p2 << endl;
return 0;
}
/*
不可重入函数:
1、内部使用的静态数据结构
2、内部调用了malloc或free
3、标准IO函数
*/