6

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

STDIN_FILENO: undeclared identifier

我无法为此提出或找到任何解决方案。有没有办法让 STDIN_FILENO 在 Windows 中工作?

4

3 回答 3

5

MSDN 建议使用_fileno(stdin), where_fileno<stdio.h>.

但是请注意:

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

于 2014-12-20T18:31:52.903 回答
4

STDIN_FILENO 是标准 POSIX 的定义,

试试0!

于 2012-11-23T15:19:59.643 回答
0

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

#include <unistd.h>

有用的参考链接

于 2016-07-05T09:32:33.067 回答