C アプリケーションを Solaris 8 から Solaris 10 に移行しています。Solaris 10 でこのコードを実行するとエラーが発生します。32 ビット gcc コンパイラを使用しています。
nFDs = ulimit(UL_GDESLIM, 0);
n=select(nFDs, &set, NULL, NULL, NULL);
エラー:
Error : GetKey_(): select(): Invalid argument
nFDs
1024 を超えているため、このエラーが発生した理由がわかりました。以下はselect.h
#ifdef _LP64
#define FD_SETSIZE 65536
#else
#define FD_SETSIZE 1024
ulimit(UL_GDESLIM, 0)
と がどのようにselect
機能し、どのヘッダーを修正する必要があるかを教えてください。