linux文件描述符是什么
linux文件描述符是什么
缺省是現(xiàn)代詞,是一個(gè)專有名詞,指的是默認(rèn)值。是指一個(gè)屬性、參數(shù)在被修改前的初始值。缺省即系統(tǒng)默認(rèn)狀態(tài),意思與“默認(rèn)”相同。“缺省”最初來源于計(jì)算機(jī)英文文檔中的單詞"default","default”有很多意思:違約、缺省、拖欠、默認(rèn),由于當(dāng)時(shí)計(jì)算機(jī)方面的翻譯水平不高,于是就把這個(gè)詞直譯成了“缺省”,其實(shí)應(yīng)該取它的引申意思“默認(rèn)”。后來,人們發(fā)現(xiàn),無論怎么解釋,缺省好像都說不通,但是由于之前的人們已經(jīng)習(xí)慣了“缺省”這個(gè)用法,故依舊延續(xù)了這個(gè)用法。新一輩的人們覺得說起來很拗口,就使用了"default”的引申意思,所以,在大多數(shù)計(jì)算機(jī)技術(shù)文檔或者軟件里面,采用的都是意譯之后的“默認(rèn)”這個(gè)用法。文件描述符在形式上是一個(gè)非負(fù)整數(shù)。實(shí)際上,它是一個(gè)索引值,指向內(nèi)核為每一個(gè)進(jìn)程所維護(hù)的該進(jìn)程打開文件的記錄表。
文件描述符的好處主要有兩個(gè):
基于文件描述符的I/O操作兼容POSIX標(biāo)準(zhǔn)。
在UNIX、Linux的系統(tǒng)調(diào)用中,大量的系統(tǒng)調(diào)用都是依賴于文件描述符。
此外,在Linux系列的操作系統(tǒng)上,由于Linux的設(shè)計(jì)思想便是把一切設(shè)備都視作文件。因此,文件描述符為在該系列平臺(tái)上進(jìn)行設(shè)備相關(guān)的編程實(shí)際上提供了一個(gè)統(tǒng)一的方法。
文件描述符的概念存在兩大缺點(diǎn):
在非UNIX/Linux操作系統(tǒng)上(如Windows NT),無法基于這一概念進(jìn)行編程。
由于文件描述符在形式上不過是個(gè)整數(shù),當(dāng)代碼量增大時(shí),會(huì)使編程者難以分清哪些整數(shù)意味著數(shù)據(jù),哪些意味著文件描述符。因此,完成的代碼可讀性也就會(huì)變得很差。
Linux
管理用戶可以在etc/security/limits.conf配置文件中設(shè)置他們的文件描述符極限,如下例所示。
softnofile1024
hardnofile4096
系統(tǒng)級文件描述符極限還可以通過將以下三行添加到/etc/rc.d/rc.local啟動(dòng)腳本中來設(shè)置:
#Increasesystem-widefiledescriptorlimit.
echo4096>/proc/sys/fs/file-max
echo16384>/proc/sys/fs/inode-max
Windows
在Windows操作系統(tǒng)上,文件描述符被稱作文件句柄。在Windows2000服務(wù)器上,打開文件的句柄極限設(shè)置為16,384。此數(shù)量可以在任務(wù)管理器的性能摘要中監(jiān)視。