我正在將一個使用<unistd.h>
,特別是gethostid功能的Linux代碼移植到Windows 7.如何在Windows 7上獲取gethostid行爲?
我需要一個唯一的32位數,我將在我的應用程序中使用它。我如何使用Windows 7中的API以我在Linux上執行的相同方式獲取唯一編號?
謝謝。
我正在將一個使用<unistd.h>
,特別是gethostid功能的Linux代碼移植到Windows 7.如何在Windows 7上獲取gethostid行爲?
我需要一個唯一的32位數,我將在我的應用程序中使用它。我如何使用Windows 7中的API以我在Linux上執行的相同方式獲取唯一編號?
謝謝。
您通常會通過返回本地IP地址來實現此目的,例如通過調用getaddrinfo()
。
192.168.0.100不是一個非常獨特的號碼... – 2011-03-17 00:10:29
@R ..我認爲你需要更清晰的定義* unique * for這個評論是有道理的。在什麼領域獨一無二?請參閱[打開組文檔](http://pubs.opengroup.org/onlinepubs/009695399/functions/gethostid.html):「IEEE Std 1003.1-2001的這一卷未定義返回值唯一的域。 「 – 2011-03-17 00:49:58
@R ..我也把你引用到[Linux手冊頁](http://www.kernel.org/doc/man-pages/online/pages/man2/sethostid.2.html):「在glibc如果gethostid()無法打開包含主機ID的文件,則它使用gethostname(2)獲取主機名,將該主機名傳遞給gethostbyname_r(3)以獲取主機的IPv4地址,並且 返回一個值(這個值可能是 不是唯一的)「 – 2011-03-17 00:53:18
這是一隻非常漂亮的兔子。 – 2011-03-16 23:54:01
'long gethostid(){return 42; }'應該和Linux版本一樣好。 – 2011-03-16 23:59:53
哈哈,提醒我http://xkcd.com/221/ – coelhudo 2011-03-17 00:03:33