小さなテストプログラム(Linuxのmingwでコンパイル)では、Winsock2のsocket
呼び出しの実装を使用して取得したソケットfdでread
とwrite
コールを使用できないことに気付きました。書き込み呼び出しは<を返し、errno = EBADFを設定します。winsockは読み取り/書き込みをサポートしていません
xinetdからプログラムを実行して、それらのstdin/stdoutが常にソケットであるという前提を除いて考える。 (一部のプログラムはgetpeernameを呼び出しますが、ソケットでなければ失敗し、その後は途中で終了することがあります)。
したがって、stdinから読み書きする{ファイル記述子型}/stdoutは、fdについての仮定をしない限り、win32環境で合理的に動作するはずですか?
より簡単に言えば、win32(well、mingw)write
の実装でWinsock2ソケットfdsを配線するために実行されるいくつかのマジック関数呼び出しがありますか?
ああ、cygwin、良い呼び出し、その存在を私に思い出させるために感謝します。私はcygwin gccを単に実行するためにワインを使わなくても、クロスコンパイルが可能かどうか疑問です。 – user562374
間違いなく可能です。ちょうど "cygwin linuxのクロスコンパイラ"のようなものをgoogleし、何が表示されるかを参照してください。 –