阿部です。

On Thu, Apr 15, 2010 at 04:03:07PM +0900, もじもじ wrote
> 
> ちなみに、ソース(一部抜粋)は
> 
> 162         /* Try to use closefrom() for just closing fd 3. */
> 163         closefrom(3);

ここで落ちるのであれば、closefrom(3) の箇所を、
次のように書き直せば良いのでは?
とりあえず、ここに挿入することを考えて、適当なコードです。

  do {
    int d;
    for (d = 0; d < 3; d++) {
      close(d);
    }
  } while (0);

> 164         fd = highest_fd();
> 165         if (fd != 2)
> 166                 fail("closefrom", "highest fd %d", fd);
> 167         ok("closefrom");

FreeBSD 7.3-RELEASE のマニュアルを読むと、
指定した引数の値よりも小さい FileDescriptor を閉じるようなので、
上記のコードでも同じじゃないかなと。

確認していませんが、試してみてはどうですか?

ではでは。
-- 
阿部康一/Kouichi ABE (WALL)
koui...@mysticwall.com
http://www.iPhone.MysticWALL.COM/ (Personal)
http://www.iPhone.MagickWorX.COM/ (Business)

メールによる返信