_setmaxstdio
標準入出力 (stdio) レベルで同時に開くことができるファイル数の最大値を設定します。
int _setmaxstdio(
int newmax
);
パラメーター
- newmax
標準入出力 (stdio) レベルで同時に開くファイル数の新しい最大値。
戻り値
正常に終了した場合は newmax を返します。それ以外の場合は –1 を返します。
newmax が _IOB_ENTRIES より小さい、またはオペレーティング システムで使用できるハンドルの最大数を超えている場合、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、この関数は -1 を返し、errno を EINVAL に設定します。
エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
_setmaxstdio 関数は、標準入出力 (stdio) レベルで同時に開くことができるファイル数の最大値を変更します。
旧バージョンと比較して、C ランタイム I/O では、Win32 プラットフォームで開くことができるファイル数が増えています。 低水準入出力 (lowio) レベル (_open、_read、_write などの入出力関数を使用して開いてアクセスする) で同時に開くことができるファイル数は最大 2,048 です。 標準入出力 (stdio) レベル (fopen、fgetc、fputc などの関数を使用して開いてアクセスする) で同時に開くことができるファイル数は最大 512 です。 標準入出力 (stdio) レベルで開くことができるファイル数の上限 512 は、_setmaxstdio 関数を使用して最大 2,048 まで増やすことができます。
fopen 関数などの標準入出力 (stdio) レベルの関数は、低水準入出力 (lowio) 関数の上に構築されるので、C ランタイム ライブラリからアクセスして同時に開くことができるファイル数の上限は、低水準入出力関数の最大値 2,048 になります。
注意
この上限は、特定の Win32 プラットフォームと設定でサポートされている値を超える場合があります。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_setmaxstdio |
<stdio.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
_setmaxstdio 関数の使い方については、「_getmaxstdio」を参照してください。
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。