日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

浅谈输入输出”重定向“——基于Linux系统

發(fā)布時間:2025/3/15 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈输入输出”重定向“——基于Linux系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言

? ? ? 進(jìn)程在啟動后會自動的打開3個文件:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出分別對應(yīng)文件描述符0、1、2。對于每個進(jìn)程他們都都維護(hù)了一張文件描述符表(file descriptor table),通常fd(file discriptor同下文) 的取值范圍是0-1023(可以通過ulimit -n命令查看,當(dāng)然這不是標(biāo)準(zhǔn),可以自行修改,但是這通常已經(jīng)夠用了)。每個文件描述符表項(xiàng)都有一個文件指針,指向一張打開文件表(open file table),這張表是內(nèi)核級的,意思就是說可以存在兩個進(jìn)程中的fd指向同一個打開文件表項(xiàng)。比如一個進(jìn)程打開文件之后通過fork()產(chǎn)生了一個子進(jìn)程,那么就會出現(xiàn)兩個進(jìn)程中的fd指向同一個打開文教表表項(xiàng)的情況。指向同一個打開文件表表項(xiàng)意味著這樣的fd擁有同樣的offset以及status flags。如下圖所示:

? ?

關(guān)于重定向

? ? ?在bash中,重定向的語法用‘>’和'<'表示,如“2>&1”,意思就是把標(biāo)準(zhǔn)錯誤輸出(文件描述符為2)重定向(redirection)到標(biāo)準(zhǔn)輸出(文件描述符為1)。具體可以這樣實(shí)現(xiàn):

  

? ? ?當(dāng)然,除了使用文件描述符之外也可以使用文件名作為重定向的“方向”,如“l(fā)s > file ”,就是把ls的標(biāo)準(zhǔn)輸出將結(jié)果重定向到file的輸入之中。于是所有到標(biāo)準(zhǔn)輸出的輸出都被重定向到了file的輸入中,file的內(nèi)容便再現(xiàn)了ls命令的結(jié)果。

? ??

? ? 其實(shí)我以為對重定向的理解,關(guān)鍵不在代碼的實(shí)現(xiàn),當(dāng)知道了原理之后,腦中有了一個具體的概念,剩下的事只是“看圖說話”了,也許就是所謂的事半功倍的效果吧。

轉(zhuǎn)載于:https://www.cnblogs.com/ittinybird/p/4635767.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的浅谈输入输出”重定向“——基于Linux系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。