小田@QNES です。

VC++ でsocket使えるようにしようと、調べてみました。

以下のパッチでgetsockopt のエラーは解消したのですが、
win32.c の myfdopen で作るfilepointer がどうもマズイようです。
io.c で getc する際に EBADF (errno=8) で返ってきます。

myfdopen を _fdopen にすると例外します。

どちらも、SOCKET ハンドルを fd として使おうとしているのが
問題のようです。

どうしましょう(;_;)

--- win32\win32.c.org   Tue Apr 20 17:41:57 1999
+++ win32\win32.c       Fri May 21 15:45:06 1999
@@ -1593,6 +1593,7 @@

     //fprintf(stderr, "myfdopen()\n");

+    optlen = sizeof(sockbuf);
     retval = getsockopt((SOCKET)fd, SOL_SOCKET, SO_TYPE, sockbuf, &optlen);
     if (retval == SOCKET_ERROR) {
        int iRet;

∪*****/\*****\/*****/\*****∪
  Koji Oda  NEC Software Kyusyu
  1st Development Department
   Based Software Division
  E-Mail:oda / bsd1.qnes.nec.co.jp
∩*****/\*****\/*****/\*****∩