将libeio移植到Windows需要什么?
大概一年之后,你可能想要查看的内容(你或者任何通过搜索或谷歌搜索的人)是libuv ,以前是liboio。 与已被接受的答案相反,Windows并没有像当时那样被剥夺了偶数I / O的概念,它只是在深奥知识的Windows API开发人员。 在Windows空间中,类似的概念被实现为I / O完成端口 ,所以不需要libeio版本/端口/叉/模拟器来重新实现轮子,它只需要有一个自由的外观API到底下使用IOCP的东西。
Libeio使用Windows世界中未知的unix API和unix概念。 你有的解决方案是:
#if __FreeBSD__ || 定义__NetBSD__ || 定义__OpenBSD__ #define _DIRENT_HAVE_D_TYPE / * sigh * / #define D_INO(de)(de) - > d_fileno #define D_NAMLEN(de)(de) - > d_namlen #elif __linux || 定义的d_ino || _XOPEN_SOURCE> = 600 #define D_INO(de)(de) - > d_ino # 万一
当然,第二个解决方案是最好的,考虑到eio.c的相对较小的尺寸,libeio的唯一C文件。