應用我有wrriten驗證碼:Linux系統調用getifaddr C++
struct ifaddrs *ifap;
if (0 != getifaddrs(&ifap)) {
error = errno;
return -1;
}
addresses.clear();
for (struct ifaddrs *ifa = ifap; ifa; ifa = ifa->ifa_next) {
sockaddr *s=ifa->ifa_addr;
PRINT(" LocalIP sockaddr %u.%u.%u.%u \n",s->sa_data[2],s->sa_data[3],s->sa_data[4],s->sa_data[5]);}
當我調試打印我看到,當我有靜態IP像10.0.0.12它打印它正確
。但從DHCP的IP如192.168.14.12它打印它「-64.-88.14.12」
我該如何解決這個問題?
10x
當我改變它%u我得到而不是:192.168.14.12我得到:4294967232.4294967208.14.12 – gln 2010-12-14 09:43:13
那麼,你可以粘貼實際的代碼,而不是重寫一個? – x13n 2010-12-14 09:45:54
沒關係,我已經更新了我的答案。 – x13n 2010-12-14 09:50:02