FINEBIO的Winsocks定义的实际数量是多少?

时间:2016-03-03 05:00:14

标签: c sockets winsock

我使用的解释脚本语言不支持系统包含文件。

我需要许多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程序来打印出值? :)

1 个答案:

答案 0 :(得分:4)

#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)