From: wanabe Date: 2008-07-13T18:47:35+09:00 Subject: [ruby-list:45223] Re: Mingw/cygwinでパイプが最大数以上作られたときの挙動 ワナベです。 2008/07/12 14:35 Masaki Suketa : > うちの環境(Windows XP SP2)でも再現しました。 > なので、ワナベさんの環境特有の問題ではないと思います。 情報ありがとうございます。 おかげさまで問題を絞り込むことができました。 結論から申し上げて、msvcrt.dll のバグだったようです。 msvcr71.dll を代わりに使うことで問題を回避できました。 以下のようにして確かめました。 $ cat test.c #include #include int main(int argc, char **argv) { int fd, n = 0; while(_dup(0) != -1) n++; printf("n = %i\n", n); _dup(0); printf("fin\n"); return 0; } $ gcc -mno-cygwin test.c && ./a.exe n = 2045 // ← CTRL+C で中断するまで処理が止まる $ gcc -mno-cygwin test.c -lmsvcr71 && ./a.exe n = 2045 fin -- ワナベ