2016-03-03 42 views
0

我正在使用不支持系統包含文件的解釋型腳本語言。FIONBIO的Winsocks定義的實際數量是多少?

我需要許多Winsock #defines的數字。 對於大多數我就可以搜索文件,並得到這樣一個答案:

#define AF_INET6 23 

但是FIONBIO我看到

#define FIONBIO _IOW('f', 126, u_long) 

仰視_IOW顯示

#define _IOW(x,y,t)  (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 

我發現一些作品的即:

#define IOCPARM_MASK  0x7f 
#define IOC_IN 0x80000000 

但是當我試圖找出實際結果時,我在某個圈子的某個地方迷路了。

誰能告訴我FIONBIO應該是什麼號碼? 我沒有找到一個職位的地方,隨便提及,在一些UNIX構建有:

#define FIONBIO   := 0x5421 

我似乎無法使Windows Winsock的定義轉成這個數字,我不確定它是否應該是無論如何。

有人能告訴我答案嗎?或者我必須下載一些Windows開發環境並編寫一個C程序來打印出該值? :)

+0

謝謝。有趣的是,這是我嘗試手動解碼語法時得到的答案,但我不相信它可能是正確的。活到老,學到老。 – wdmodlin

回答

1
#include <winsock.h> 

int main() 
{ 
    printf("FIONBIO is size %u with value %u (0x%x)\n", 
     sizeof(FIONBIO), FIONBIO, FIONBIO); 
} 

給出輸出;

FIONBIO is size 4 with value 2147772030 (0x8004667e) 
相關問題