STDIN_FILENO在Windows中未声明

时间:2012-11-23 15:10:41

标签: windows compiler-errors stdin

我有一些代码使用select函数编译并在Linux中正常运行。但我正在尝试将其移植到Windows并且我收到此错误我不知道如何处理。它说

STDIN_FILENO: undeclared identifier

我无法想出或找到任何解决方案。有没有办法让STDIN_FILENO在Windows中运行?

3 个答案:

答案 0 :(得分:2)

STDIN_FILENO是标准POSIX的定义,

尝试0!

答案 1 :(得分:2)

MSDN suggests使用_fileno(stdin)_fileno中声明了<stdio.h>

但请注意:

  

如果 stdout stderr 未与输出流关联(例如,在没有控制台窗口的Windows应用程序中),则返回的文件描述符为-2。在以前的版本中,返回的文件描述符为-1。此更改允许应用程序将此条件与错误区分开来。

答案 2 :(得分:1)

我很抱歉回答这么晚,但我已经解决了在gcc编译器上添加unistd.h这个问题。所以,尝试添加

#include <unistd.h>

有用的参考link