午夜网站国产欧美_加勒比视频亚洲无码_91亚洲人人在字幕国产_18禁止美女爆乳免费网站_被消防员c哭高h野外糙汉动漫_午夜精品视频在线无码_gogowww人体大胆裸体午液_2021自拍偷区亚洲综合第一页_国产欧美一区二区精品性色超碰_99國產精品無碼

Hi,您好,歡迎來到西安盛圖軟件科技有限公司!

Linux文件描述符操作概述

發(fā)布時(shí)間:2021-12-24 10:57:30

Linux文件描述符操作概述

當(dāng)看到最后一個(gè)文件描述符被關(guān)閉的時(shí)候,kill進(jìn)程對(duì)我說:還有什么要交代的么?我搖了搖頭。隨著kill進(jìn)程的手起刀落,一切歸于混沌……


我是一個(gè)Linux用戶級(jí)進(jìn)程,編號(hào)9527。

自從我的父親bash產(chǎn)生我之后,我獨(dú)自占用了一個(gè)終端(偽終端),并且產(chǎn)生我的進(jìn)程bash因?yàn)橛脩舻膬?yōu)化而提前結(jié)束,使得我成了孤兒(孤兒進(jìn)程),我于是被祖先進(jìn)程領(lǐng)養(yǎng)。

作為整個(gè)進(jìn)程家族中最小的一輩,集萬千寵愛與一身,基本什么事都不用做,唯一的功能就是測(cè)試等待用戶請(qǐng)求并和操作系統(tǒng)交互。百無聊賴的我漸漸的打起了瞌睡。

“快醒醒!“一陣急促的提示消息把我從掛起隊(duì)列中喚醒。

“怎么了?”我問。

“用戶請(qǐng)求來了”負(fù)責(zé)調(diào)度任務(wù)的操作系統(tǒng)大哥帶著冷漠的電子口音對(duì)我說。

嗯,終于來活了。

緊接著,操作系統(tǒng)遞給了我一個(gè)紙片,上面寫著3。

“這是什么?”我又問。

“這叫文件描述符,專門用于訪問文件的?!辈僮飨到y(tǒng)顯然以前經(jīng)?;卮疬@種問題,面無表情的快速說出了答案。

“哦,我想起來的,我出生的時(shí)候我爸bash進(jìn)程給了我三個(gè)卡片,上面寫著0,1,2”,我好像有點(diǎn)明白了。

“是,不過那三個(gè)是用于訪問輸入輸出設(shè)備的,現(xiàn)在你手上這張是打開了一個(gè)普通的文件的”,操作系統(tǒng)回答道,依然是那種機(jī)械性的,冷冰冰的語氣。

“輸入和輸出能用數(shù)字,普通文件也要用數(shù)字,為什么你們這么懶?”我?guī)е唤夥磫柕溃半y道不能專門給輸入輸出一個(gè)方式,普通文件另一個(gè)方式么?”

“沒必要”,操作系統(tǒng)笑了笑。他笑了,他居然會(huì)笑!

Linux中凡是能夠進(jìn)行數(shù)據(jù)的寫入和讀取的東西,無論什么,我們都會(huì)統(tǒng)一的管理。稱之為文件,在Linux世界中,一切都是文件”。很顯然,操作系統(tǒng)對(duì)我們的造物主的設(shè)計(jì)邏輯充滿的敬佩。

“我持有這樣的數(shù)字居然能打開文件”,我仔細(xì)端詳著手中帶有數(shù)字的金屬卡片,它在CPU的電子脈沖中發(fā)出了點(diǎn)點(diǎn)熒光。

“是,但不全是”,操作系統(tǒng)糾正我道?!?strong>你是一個(gè)普通的進(jìn)程,并不能夠直接訪問到文件本身,需要通過我間接的訪問文件”。

每個(gè)進(jìn)程有自己的打開文件的描述符表。其中每個(gè)條目都記錄了單個(gè)文件描述符的相關(guān)信息,針對(duì)所有打開的文件,內(nèi)核有一個(gè)系統(tǒng)級(jí)的描述表,其中每個(gè)條目稱為打開文件句柄,存儲(chǔ)了與一個(gè)打開文件相關(guān)的全部信息,每個(gè)文件系統(tǒng)都會(huì)為其中所有文件建立一個(gè)inode表。其中條目為文件的inode信息”。

“也就是說我手中的這個(gè)數(shù)字卡片只有你能識(shí)別”,我問道。

“沒錯(cuò),而且是所有的用戶進(jìn)程的文件描述符都只有我能識(shí)別,并且只能通過我識(shí)別”,操作系統(tǒng)的眼中閃出了一絲傲嬌的光輝。

他接著說“這是由于我的管理,不同的用戶級(jí)進(jìn)程可以打開同樣文件,每個(gè)進(jìn)程也可以打開不同的文件”。

這時(shí),用戶的請(qǐng)求已經(jīng)從緩沖區(qū)中取了出來,要求我用3號(hào)卡片讀取文件中的內(nèi)容并使用1號(hào)卡片輸出到終端。

“常見日志打印操作”,操作系統(tǒng)向我解釋道?!斑@是開發(fā)用戶經(jīng)常性的操作,將日志文件的內(nèi)容打印出來,并查看他們管理的系統(tǒng)是否有問題?!?/p>

“哦,這樣子”,經(jīng)過了幾次循環(huán)讀取并打印后,我漸漸明白了文件描述符的工作原理。經(jīng)過了幾個(gè)時(shí)間片輪轉(zhuǎn)后,我的操作也是得心應(yīng)手。


突然,我手中的卡片漸漸消失,從0號(hào)開始,1號(hào),2號(hào),最后是三號(hào)。我不解的望向操作系統(tǒng)。

“看來是打印任務(wù)完畢,用戶通過日志找到問題所在了,需要關(guān)掉你這個(gè)進(jìn)程,讓出終端”,操作系統(tǒng)不敢看我的眼睛。

“不是吧,僅僅是打印了幾次數(shù)據(jù),就要關(guān)掉我,而且我還掌握著這個(gè)文件呢?”,作為整個(gè)進(jìn)程家族中最小的我大為不解。

“沒辦法,你的任務(wù)到此為止了,需要釋放資源,放心吧,即使你被關(guān)掉了,bash依然會(huì)產(chǎn)生新的進(jìn)程完成對(duì)于文件的操作”。

這時(shí),操作系統(tǒng)調(diào)來了kill進(jìn)程,他是專門用于關(guān)閉進(jìn)程的殺手。Kill進(jìn)程皺著眉頭對(duì)我說:“別害怕,很快的”。

當(dāng)看到最后一個(gè)文件描述符被關(guān)閉的時(shí)候,kill進(jìn)程問我:還有什么要交代的么?我搖了搖頭。隨著kill進(jìn)程的手起刀落,一切歸于混沌……


關(guān)于Linux文件描述符操作概述的介紹就到這里啦,感謝盛圖科技文學(xué)大家楊老師的創(chuàng)作,相信大家通過這樣簡(jiǎn)單生動(dòng)的描寫一定都對(duì)Linux文件描述符操作有了更直觀的認(rèn)知吧

上一篇:機(jī)械臂的廣泛應(yīng)用
下一篇:程序員編程入門須知

歡迎登錄盛圖科技

歡迎注冊(cè)盛圖科技

已有賬號(hào),立即登錄