linux控制代碼洩露問題檢視

2021-09-11 08:22:57 字數 1484 閱讀 8696

**

檢視與修改控制代碼:

在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...