sve*_*ven 7 c linux radix inet-aton
不inet_aton假设规范化互联网地址的点版本?为什么我会得到下面示例的不同输出值?
int main(){
char USER_IP[16] = "192.168.002.025";
char USER_IP2[16] = "192.168.2.25";
struct sockaddr_in addr;
struct sockaddr_in addr2;
inet_aton(USER_IP2, &addr.sin_addr);
inet_aton(USER_IP, &addr2.sin_addr);
printf("addr.sin_addr:%lu\n", addr.sin_addr);
printf("addr2.sin_addr:%lu\n", addr2.sin_addr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
addr.sin_addr:419604672
addr2.sin_addr:352495808
Run Code Online (Sandbox Code Playgroud)
msa*_*sam 12
来自文档
虚线地址的组成部分可以用十进制,八进制(带前导0)或>十六进制指定,带前导0X)
这意味着
char USER_IP[16] = "192.168.002.025";
Run Code Online (Sandbox Code Playgroud)
暗示192 168 2(25 Octal == 21)和
char USER_IP2[16] = "192.168.2.25";
Run Code Online (Sandbox Code Playgroud)
暗示192 168 2 25