2011-03-16 21 views
1

我正在將一個使用<unistd.h>,特別是gethostid功能的Linux代碼移植到Windows 7.如何在Windows 7上獲取gethostid行爲?

我需要一個唯一的32位數,我將在我的應用程序中使用它。我如何使用Windows 7中的API以我在Linux上執行的相同方式獲取唯一編號?

謝謝。

+2

這是一隻非常漂亮的兔子。 – 2011-03-16 23:54:01

+2

'long gethostid(){return 42; }'應該和Linux版本一樣好。 – 2011-03-16 23:59:53

+3

哈哈,提醒我http://xkcd.com/221/ – coelhudo 2011-03-17 00:03:33

回答

1

您通常會通過返回本地IP地址來實現此目的,例如通過調用getaddrinfo()

+0

192.168.0.100不是一個非常獨特的號碼... – 2011-03-17 00:10:29

+0

@R ..我認爲你需要更清晰的定義* unique * for這個評論是有道理的。在什麼領域獨一無二?請參閱[打開組文檔](http://pubs.opengroup.org/onlinepubs/009695399/functions/gethostid.html):「IEEE Std 1003.1-2001的這一卷未定義返回值唯一的域。 「 – 2011-03-17 00:49:58

+0

@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

相關問題