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

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站建設(shè)、萬(wàn)年網(wǎng)絡(luò)推廣、成都小程序開發(fā)、萬(wàn)年網(wǎng)絡(luò)營(yíng)銷、萬(wàn)年企業(yè)策劃、萬(wàn)年品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供萬(wàn)年建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
Linux句柄
Linux中所有的事物或資源都是以文件的形式存在,比如消息、共享內(nèi)存、連接等,句柄可以理解為指向這些文件的指針。
對(duì)于這些句柄,Linux是有數(shù)量限制的,單個(gè)進(jìn)程默認(rèn)可以打開的句柄數(shù)上限,可以用以下命令來(lái)查看:
$ ulimit -a
查看某個(gè)進(jìn)程的句柄數(shù)上限,命令是:
$ ulimit -a PID
單個(gè)進(jìn)程句柄數(shù)的修改(系統(tǒng)重啟后會(huì)恢復(fù)默認(rèn)值)
$ ulimit -n 句柄數(shù)
永久修改單個(gè)進(jìn)程句柄數(shù)
$ cat >> /etc/security/limits.conf
說(shuō)明:修改完成后,需要重新打開終端,使用 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) 隊(duì)列。 IPv4:網(wǎng)際協(xié)議 (IP) 套接字。
LINUX對(duì)能夠打開的文件句柄的數(shù)量做了限制。限制是分為三個(gè)層面:系統(tǒng)層面,用戶層面和進(jìn)程層面。 如果某個(gè)進(jìn)程打開的文件句柄超過(guò)限制,再打開文件就會(huì)報(bào)錯(cuò)。因此,在編程時(shí),如果進(jìn)程要占用大量文件句柄的話, 就要看看是否要調(diào)整最大可打開的文件句柄數(shù),同時(shí)也要注意close釋放掉不用的文件句柄。
系統(tǒng)層面
$ cat /proc/sys/fs/file-max
用戶層面
$ ulimit -n
進(jìn)程層面
$ cat /proc/PID/limits
分享文章:詳解Linux文件句柄
本文URL:http://www.dlmjj.cn/article/djojoeg.html


咨詢
建站咨詢
