溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux文件句柄是什么

發(fā)布時間:2022-02-10 15:28:51 來源:億速云 閱讀:478 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Linux文件句柄是什么”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Linux文件句柄是什么”文章能幫助大家解決問題。

文件I/O中,要從一個文件讀取數(shù)據(jù),應(yīng)用程序首先要調(diào)用操作系統(tǒng)函數(shù)并傳送文件名,并選一個到該文件的路徑來打開文件。該函數(shù)取回一個順序號,即文件句柄(file handle),該文件句柄對于打開的文件是唯一的識別依據(jù)。要從文件中讀取一塊數(shù)據(jù),應(yīng)用程序需要調(diào)用函數(shù)ReadFile,并將文件句柄在內(nèi)存中的地址和要拷貝的字節(jié)數(shù)傳送給操作系統(tǒng)。

Linux文件句柄是什么

Linux句柄

Linux中所有的事物或資源都是以文件的形式存在,比如消息、共享內(nèi)存、連接等,句柄可以理解為指向這些文件的指針。

對于這些句柄,Linux是有數(shù)量限制的,單個進(jìn)程默認(rèn)可以打開的句柄數(shù)上限,可以用以下命令來查看:

$ ulimit -a
Linux文件句柄是什么

查看某個進(jìn)程的句柄數(shù)上限,命令是:

$ ulimit -a PID
Linux文件句柄是什么

單個進(jìn)程句柄數(shù)的修改(系統(tǒng)重啟后會恢復(fù)默認(rèn)值)

$ ulimit -n 句柄數(shù)

永久修改單個進(jìn)程句柄數(shù)

$ cat >> /etc/security/limits.conf
Linux文件句柄是什么

說明:修改完成后,需要重新打開終端,使用 ulimit -a 查看句柄數(shù)

查詢系統(tǒng)中指定進(jìn)程占用的句柄數(shù)

$ lsof -n | grep [PID|進(jìn)程名]| wc -l

查詢系系統(tǒng)中進(jìn)程占用的句柄數(shù)

$ lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more

文件類型有以下幾種: DIR:表示目錄。 CHR:表示字符類型。 BLK:塊設(shè)備類型。 UNIX: UNIX 域套接字。 FIFO:先進(jìn)先出 (FIFO) 隊列。 IPv4:網(wǎng)際協(xié)議 (IP) 套接字。

LINUX對能夠打開的文件句柄的數(shù)量做了限制。限制是分為三個層面:系統(tǒng)層面,用戶層面和進(jìn)程層面。 如果某個進(jìn)程打開的文件句柄超過限制,再打開文件就會報錯。因此,在編程時,如果進(jìn)程要占用大量文件句柄的話, 就要看看是否要調(diào)整最大可打開的文件句柄數(shù),同時也要注意close釋放掉不用的文件句柄。

系統(tǒng)層面

$ cat /proc/sys/fs/file-max

用戶層面

$ ulimit -n

進(jìn)程層面

$ cat /proc/PID/limits

關(guān)于“Linux文件句柄是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI