_setmaxstdio
設定在資料流 I/O 層級同時開啟的檔案數目上限。
語法
int _setmaxstdio(
int new_max
);
參數
new_max
在資料流 I/O 層級同時開啟的檔案數目新上限。
傳回值
如果成功,則傳 new_max
回 ;否則傳回 -1。
如果 new_max
小於 _IOB_ENTRIES
,或大於操作系統中可用的最大句柄數目,則會叫用無效的參數處理程式,如參數驗證中所述。 如果允許繼續執行,此函式會傳回 -1,並將 errno
設為 EINVAL
。
如需這些錯誤碼和其他錯誤碼的相關信息,請參閱errno
、 _doserrno
_sys_errlist
和 _sys_nerr
。
備註
函 _setmaxstdio
式會變更數據流 I/O 層級可同時開啟之檔案數目的最大值。
C 執行階段 I/O 現在支援在低 I/O 層級最多同時開啟 8,192 個檔案。 此層級包含使用 _open
、 _read
和 _write
系列 I/O 函式開啟和存取的檔案。 根據預設,最多可在資料流 I/O 層級同時開啟 512 個檔案。 此層級包含使用 fopen
、 fgetc
和 fputc
函式系列開啟和存取的檔案。 數據流 I/O 層級的 512 個開啟檔案限制可以增加到最多 8,192 個,方法是使用 函 _setmaxstdio
式。
因為數據流 I/O 層級函式,例如 fopen
,建置在低 I/O 層級函式之上,因此 8,192 的最大限制是透過 C 運行時間連結庫同時存取的檔案數目的硬上限。
注意
此上限可能會超過特定 Win32 平台和組態支援的值。
需求
常式 | 必要的標頭 |
---|---|
_setmaxstdio |
<stdio.h> |
如需相容性詳細資訊,請參閱相容性。
範例
如需使用 _setmaxstdio
的範例,請參閱 _getmaxstdio
。