質問は受け付けないって書いてあるのに、変わった人たちですね。 まぁいいですけど。 > Q1.FOPEN_MAXの20と言うのは何に利用されているかご存知ですか? Solaris8 の stdio(3) には以下のように記述されています。 The integer constant FOPEN_MAX specifies the minimum number of files that the implementation guarantees can be open simultaneously. JIS X 3010 (C99 相当) には以下のように記述されています。 FOPEN_MAX は、同時にオープンできることを処理系が保証するファイル 数の最小値をあらわす整数定数式に展開する。 なお、FOPEN_MAX は最大値ではなく最小値です。「少なくともこれだけは オープンできる」という値です。 FOPEN_MAX が具体的にどう使われているか、という話であれば、処理系 依存です。たとえば FreeBSD であれば libc において static FILE usual[FOPEN_MAX - 3]; などと使われており、リソースを確保しなおすことなくオープンできる ファイル数が FOPEN_MAX である、という形になっているようです。 Linux などで使われている glibc においては FOPEN_MAX を一切使用して おらず、意味のない値になっています。Solaris はソースを持ってないので 知りません。 > Q2.コンパイラごとに異なるものなのでしょうか?OSやCで決まる > ものなのでしょうか? 何がですか? FOPEN_MAX が? > Q3.漠然とした質問で申し訳無いのですが、上記の様なファイルオープン数の > メーカーからの保障について、どなたかご存知ですか? 「保証する値」にこだわるのであれば、メーカーに問い合わせるのが 一番かと思います。 |