Windows 中未声明的 STDIN_FILENO

Ste*_*ing 5 windows stdin compiler-errors

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

STDIN_FILENO: undeclared identifier
Run Code Online (Sandbox Code Playgroud)

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

200*_*ess 6

MSDN 建议使用_fileno(stdin), where_fileno是在 中声明的<stdio.h>

但请注意:

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


b3h*_*0th 5

STDIN_FILENO 是标准 POSIX 的定义,

尝试0!

  • 考虑写一个宏 - #define STDIN_LINENO 0 (2认同)