在Linux中可以同時打開多少個文件c fopen
?可以通過Linux中的c「fopen」打開的文件的最大數量
回答
你可以看到的最大允許打開文件(內核的限制)這樣做:
cat /proc/sys/fs/file-max
文件-MAX的值表示的文件 - 句柄的最大數量的Linux內核將分配。當您收到關於用完文件句柄的錯誤消息 的許多問題時,您可能想要增加此限制 。
顯示1201326但開放的fopen限制僅1022 – naren
這可能是用戶限制;)見'的ulimit -n' – nullpotent
FOPEN_MAX不是限制。它給你實現保證可以同時打開的最小數量的流* – jh314
執行需要提供FOPEN_MAX
的<stdio.h>
。這是實現保證可以同時打開的最小文件數量。您可能能夠打開更多,但要知道這是測試的唯一途徑。
請注意,內核限制與此不同 - 它告訴您可以(可能)用open
,creat
和其他OS調用打開多少個文件。 C實現的標準庫可以(並且通常會)強加它自己的限制(例如,通過靜態分配一個FILE
的數組)。從理論上講,你可以打開的最大數量是內核和庫實現限制的最小值 - 但內核的限制總是(更高)幾乎。
一般來說,如果你在乎這個,你可能是或者做錯了。
它由POSIX標準定義。刪除它會導致可移植性問題。此外,該宏在glibc.info中提到(至少在redhat-7.1中)。請參考下面的鏈接 OPEN_MAX not defined in limits.h。
此代碼應該告訴您的機器上的最大值。在同一個文件夾中創建一個文件「test」並運行它。它基本上保持打開文件,直到它不能再。
# include <assert.h>
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <sys/wait.h>
# include <string.h>
# include <fcntl.h>
int main(){
int t;
for(;;){
t = open("test", O_RDONLY);
if (t < 0){
perror("open");
exit(1);
}
printf("%d: ok\n", t);
}
}
- 1. Linux中每個進程打開的文件的最大數量
- 2. FOPEN在C(Linux)的返回「打開的文件太多」
- 3. Linux:如何更改進程可以打開的最大文件數?
- 4. 如何更改linux中打開的文件描述符的最大數量?
- 5. Python可以打開的文件的最大大小?
- 6. 可以在perl中打開的最大文件句柄
- 7. 使用fopen打開.bundle中的文件()
- 8. C#中文件的最大數據量?
- 9. 如何更改SimGrid中打開文件的最大數量?
- 10. 更改Windows中打開文件的最大數量
- 11. C打開文件時編程fopen()
- 12. 在Windows中使用fopen在Matlab中增加打開文件描述符的最大數量
- 13. 打開動態文件(fopen)
- 14. 用fopen打開的文件ftruncate
- 15. fopen問題 - 太多打開的文件
- 16. 可以通過GPRS傳輸的最大數據量是多少
- 17. 的Runtime.exec() - 通過文件在Linux中打開,找到應用
- 18. C/C++系統可移動的方式來改變打開的文件的最大數量
- 19. 通過批量打開文本文件?
- 20. 可以用fopen來打開URL
- 21. 過濾大量的linux日誌文件
- 22. php fopen - 如何使用fopen打開文件的一部分,
- 23. 爲什麼我可以的fopen在linux
- 24. 在Linux上「漂亮打印」大量C文件的最佳方法是什麼?
- 25. 如何通過linux中的C程序打開新終端
- 26. Vim可以打開的最大文件大小是多少? (64位)
- 27. 可以通過logstash讀取最大文件大小2.4.0
- 28. c - fopen打開目錄?
- 29. 通過argv打開文件[1] C++
- 30. 通過ASIHTTP請求並行下載文件的最大數量
簡短而甜美。這取決於。 –
取決於其他程序已打開的文件數量,以及硬編碼內核限制以及各種「ulimit」。 –
RTFM:http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm –