Linuxで正常にコンパイルおよび実行されるselect関数を使用するコードがいくつかあります。しかし、私はそれをWindowsに移植しようとしていますが、対処方法がわからないこのエラーが発生します。それは言う
STDIN_FILENO: undeclared identifier
私はこれに対する解決策を思い付くことができず、見つけることができませんでした。STDIN_FILENOをWindowsで機能させる方法はありますか?
Linuxで正常にコンパイルおよび実行されるselect関数を使用するコードがいくつかあります。しかし、私はそれをWindowsに移植しようとしていますが、対処方法がわからないこのエラーが発生します。それは言う
STDIN_FILENO: undeclared identifier
私はこれに対する解決策を思い付くことができず、見つけることができませんでした。STDIN_FILENOをWindowsで機能させる方法はありますか?
MSDNは_fileno(stdin)
、で_fileno
宣言されている、の使用を提案しています<stdio.h>
。
ただし、次の点に注意してください。
stdoutまたはstderrが出力ストリームに関連付けられていない場合(たとえば、コンソールウィンドウのないWindowsアプリケーションの場合)、返されるファイル記述子は-2です。以前のバージョンでは、返されるファイル記述子は-1でした。この変更により、アプリケーションはこの状態をエラーと区別できるようになります。
STDIN_FILENOは、標準POSIXの定義です。
0を試してください!
回答が遅くなって申し訳ありませんがunistd.h
、gccコンパイラを追加することでこの問題を解決しました。だから、追加してみてください
#include <unistd.h>
便利なリファレンスリンク。