深夜美女视频一区二区_91sao在线看片水片_亚洲日韩国语_精品中文字幕久久边人妻_高潮喷水香蕉视频色_白洁国产剧情Av手机在线_国产精品情侣呻吟_天空影院播放免费完整版视频_少妇高潮惨叫喷水在线观看_公交车大龟廷进我身体里

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

Linux文件描述符操作概述

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

Linux文件描述符操作概述

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


我是一個Linux用戶級進程,編號9527。

自從我的父親bash產(chǎn)生我之后,我獨自占用了一個終端(偽終端),并且產(chǎn)生我的進程bash因為用戶的優(yōu)化而提前結(jié)束,使得我成了孤兒(孤兒進程),我于是被祖先進程領(lǐng)養(yǎng)。

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

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

“怎么了?”我問。

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

嗯,終于來活了。

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

“這是什么?”我又問。

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

“哦,我想起來的,我出生的時候我爸bash進程給了我三個卡片,上面寫著0,1,2”,我好像有點明白了。

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄