**
檢視與修改控制代碼:
在linux系統中可以通過ulimit–n檢視每個程序限制的最大控制代碼數,通過ulimit –hsn 10240修改程序的最大控制代碼數。當控制代碼數目達到限制後,就回出現」too many files open」。
檢視程序占用的控制代碼數有幾種辦法:
1) 通過cat/proc/pid/fd可以檢視執行緒pid號開啟的執行緒;
2) 通過lsof命令, /usr/sbin/lsof-p 21404 命令結果如下:
command pid user fd type device size node name
vas 21404 root cwd dir 8,3 4096 30195729 /home/users/root/vas
vas 21404 root rtd dir 8,2 4096 2 /
vas 21404 root txt reg 8,3 112201650 30195914 /home/users/root/vas
vas 21404 root mem reg 0,0 0 [heap] (stat: no such file or directory)
vas 21404 root mem reg 8,2 105080 339377 /lib64/ld-2.3.4.so
vas 21404 root mem reg 8,2 1493186 339367 /lib64/tls/libc-2.3.4.so
vas 21404 root mem reg 8,2 17943 339392 /lib64/libdl-2.3.4.so
vas 21404 root mem reg 8,2 613297 339369 /lib64/tls/libm-2.3.4.so
vas 21404 root mem reg 8,2 79336 490463 /usr/lib64/libz.so.1.2.1.2
command:程序的名稱
pid:程序識別符號
user:程序所有者
fd:檔案描述符,應用程式通過檔案描述符識別該檔案。如 cwd、txt等
type:檔案型別,如 dir、reg、ipv4、fieo等
device:指定磁碟的名稱
size:檔案的大小
node:索引節點(檔案在磁碟上的標識)
name:開啟檔案的確切名稱
另外通lsof命令也可以檢視占用埠的程序:
/usr/sbin/lsof-i :9001
控制代碼洩露問題追蹤
無論是在編寫windows程式還是linux程式,都可能存在控制代碼洩露的問題。在linux中一般來說乙個程序的fd使用是有上限的,可以使用ulimit命令進行上限檢視,當出現fd洩露的時候,可能會出現socket建立失敗,檔案打不開等問題。windows類似,本文主要闡述了對windows中的控制...
fd 控制代碼 Linux下檢視控制代碼
檢視各個分割槽的控制代碼數 df ih 檢視控制代碼最大數 ulimit n 檢視23711程序連線控制代碼數 lsof n awk sort uniq c sort nr more grep 23711 檢視所有程序控制代碼數 lsof n awk sort uniq c sort nr more...
控制代碼洩露除錯
控制代碼洩露除錯 控制代碼洩露除錯 handles leak debug 一 概述 造成控制代碼洩露的主要原因,是程序在呼叫系統檔案之後,沒有釋放已經開啟的檔案控制代碼。對於控制代碼洩露,輕則影響某個功能模組正常執行,重則導致整個應用程式崩潰。在 windows系統中,gdi 控制代碼上限是 120...