我已经苦思冥想并花了几个小时寻找答案。基本上,我打开一个套接字连接到另一台机器并从中读取数据。然后通过fdopen调用将该套接字“转换”为文件句柄,传递表示套接字的整数。生成的文件句柄然后传递给bison解析器,直接解析通过套接字收到的数据。在Linux上所有这些都很好运作。现在我尝试将此代码移植到Windows上,但我失败了。代码看起来像这样:
Bison / Flex 解析器在 Windows 版本中失败,因为文件句柄似乎指向一个空的流/文件。有人可以指出一个全面的资源来解释这个问题,或者提示一个替代方案吗?
谢谢并致以最好的问候,
安德烈
FILE* fileHandle;
#if defined WINCE || defined WIN32
int fd = _open_osfhandle(socket, _O_RDONLY);
if (fileHandle = fdopen(fd, "r")) {
#else
if (fileHandle = fdopen(socket, "r")) {
#endif
... // code to call my parser with fileHandle as argument
Bison / Flex 解析器在 Windows 版本中失败,因为文件句柄似乎指向一个空的流/文件。有人可以指出一个全面的资源来解释这个问题,或者提示一个替代方案吗?
谢谢并致以最好的问候,
安德烈