上周跟着宿舍一哥们去海豚浏览器霸面,问我的题比较简单,二分查找的;当时莫名其妙的紧张了,答的不好,被鄙视了。
不过问宿舍哥们的题是IP转换成无符号32位整数,当时我感觉这个好像很熟悉的,就是想不起来。现在正好看网络编程,都清楚了。在unix网络编程中,IP地址有两种表示方法,一种是:字符串“192.168.101.25”;另一种是:与字符串对应的32位无符号数;
unix网络编程中有对两种IP转换的的函数,暂且先看一下字符串转32为无符号数的函数;
- int inet_aton(const char *strptr, struct in_addr *addr); 返回值:1----串有效,0----串有错;
- in_addr_t inet_addr(const char *strptr); 返回值:若成功,返回32位二进制的网络字节地址;若有错,返回INADDR_NONE;
- int inet_pton(int family, const char *strptr, void *addrptr); 返回值:1---成功,0---输入不是有效的表达式,-1------出错;
下面看一下 inet_aton的源代码
#include<