_setmaxstdio
ストリーム入出力のレベルで同時に開かれるファイルの数の最大値を設定します。
構文
int _setmaxstdio(
int new_max
);
パラメーター
new_max
ストリーム入出力のレベルで同時に開かれるファイルの数の最大値。
戻り値
正常に終了した場合は new_max
を返し、それ以外の場合は -1 を返します。
new_max
が_IOB_ENTRIES
未満の場合、またはオペレーティング システムで使用可能なハンドルの最大数を超える場合は、「パラメーター検証で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は -1 を返し、errno
を EINVAL
に設定します。
これらのエラー コードおよびその他のエラー コードの詳細については、「errno
、_doserrno
、_sys_errlist
、_sys_nerr
」を参照してください。
解説
_setmaxstdio
関数は、ストリーム入出力のレベルで同時に開かれるファイル数の最大値を変更します。
C ランタイム入出力では現在、低入出力レベルで最大 8,192 のファイルを同時に開くことができます。 このレベルには、入出力の _open
、_read
、_write
の関数ファミリを使用して開いたり、アクセスしたりできるファイルが含まれます。 既定では、このストリーム入出力レベルでは最大 512 のファイルを同時に開くことができます。 このレベルには、fopen
、fgetc
、fputc
の関数ファミリを使用して開いたり、アクセスしたりできるファイルが含まれます。 このストリーム入出力レベルで開くことができる最大ファイル数 512 は、_setmaxstdio
関数を使うことで、8,192 の最大値へ引き上げることができます。
fopen
などのストリーム入出力レベルの関数は低入出力レベルの関数の上に構築されているため、8,192 という最大値は、C ランタイム ライブラリによってアクセスされる同時に開いているファイルの数の固定された上限です。
Note
この上限は、特定の Win32 プラットフォームと構成でサポートされる上限を超える可能性があります。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_setmaxstdio |
<stdio.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
_setmaxstdio
の使用例については、_getmaxstdio
を参照してください。