當前位置:首頁 » 操作系統 » linux管道文件

linux管道文件

發布時間: 2022-05-19 21:23:12

『壹』 請教,linux裡面提到的管道是什麼意思

管道的話是Linux進程間通訊的工具。
分為匿名管道(pipe)和命名管道(fifo)。
主要是通過管道文件來完成本地進程間的通訊。

匿名管道
http://blog.csdn.net/oguro/article/details/53841949
命名管道
http://blog.csdn.net/ljianhui/article/details/10202699

『貳』 linux下的文件可以分為5種不同的類型

盡管在Linux系統中一切都是文件,但是每個文件的類型不盡相同,因此Linux系統使用了不同的字元來加以區分,常見的字元如下所示。
-:普通文件。
d:目錄文件。
l:鏈接文件。
b:塊設備文件。
c:字元設備文件。
p:管道文件。

『叄』 linux裡面文件的文件的st-mode,裡面的fifo是什麼東西文件裡面的fifo是什麼東西

在st_mode的特徵位定義里有:
S_IFIFO 0010000 //先進先出(fifo)

fifo是管道文件,分為分為無名管道和有名管道。
無名管道例如:ls-l | grep name 使用管道可將一個命令的輸出作為另一個命令的輸入。命令執行時,無名管道對於管道兩端的進程而言,就是一個文件,但它不是普通的文件,它不屬於某種文件系統,而是單獨構成一種文件系統,並且只存在於內存中。無名管道是臨時的,執行完成後會自動消失。由於沒有名字,無名管道只能用於親緣關系的進程間通信.
有名管道即FIFO,在文件系統中有自己文件名路徑名,這樣即使兩個不相關(沒有親緣關系)的進程,只要可以訪問該路徑,就能夠彼此通過創建FIFO相互(經常性的而非臨時的)通信。有名管道的名字存在於文件系統中,但內容還是存放在內存中。
S_IFIFO 即表示有名管道文件。具體介紹和應用,還請翻閱「進程間通信--管道」的相關內容。

『肆』 Linux管道文件的屬性位是什麼其管道的作用是什麼

屬性位是p. 希望對你有幫助,希賽上很多Linux資料的!

『伍』 系統linux 下的 管道 和 重定向 這兩個概念怎麼理解

管道是一個先進先出的特殊文件,一方只能依次寫進去,另一方也只能依次讀出來
理解管道符前先要知道一個進程運行後有3個最基本的文件,標准輸入(0表示),標准輸出(1表示),錯誤輸出(2表示)
通過命令查看當前3個基本文件,ls-l/proc/$$/fd/
shell中的管道符做了3件事,
1,先創建一個管道文件pipe
2,將管道符前面的一個命令的標准輸出替換為pipe
2,將管道符後面的一個命令的標准輸入替換為pipe
例子
echotest>/tmp/test
tail-f/tmp/test|cat&
查看tail命令3個基本文件
ls-l/proc/`pidoftail`/fd
查看cat命令3個基本文件
ls-l/proc/`pidofcat`/fd
shell重定向本身從編程角度理解就是賦值語句,0,1,2本身理解為3個變數,
<和>表示賦值符號,變數名只能用數字表示,變數只能在/proc/進程pid/fd/下查看
<以只讀方式打開一個文件,然後把打開的文件賦值給變數
>以只寫方式打開一個文件,然後把打開的文件賦值給變數
<>以讀寫方式打開一個文件,然後把打開的文件賦值給變數
exec1<>/tmp/info表示讀寫打開/tmp/info,然後賦值給變數1,執行後其他命令列印的信息都會輸入到/tmp/info里,默認所有的列印信息(echoaaaaaa)都會獲取變數1裡面打開的文件,然後把要列印的信息寫到這個文件裡面
如果寫成exec1</tmp/info這種方式,那麼列印的信息就沒法寫進去了,因為是只讀方式打開的
ls-l/dev/fd/或者ls-l/proc/$$/fd/查看
cat/proc/cmdline>/tmp/cmd通常啥這種寫法,賦值符號前面沒寫具體的變數名,默認就是1,也就是cat/proc/cmdline1>/tmp/cmd
echor>/tmp/r&&exec6</tmp/r
lsof|grep/tmp/r可以查看到6r屬性,文件以讀方式開打,並且復制給變數6

『陸』 linux系統管道文件的屬性位是什麼

管道文件一般都是存放在/dev/目錄下面,你可以執行下面的命令去查看一下它的屬性位:
ls -l /dev/ | grep "^p"
上面這條命令的意思就是:列出/dev/目錄下的文件的詳細信息,然後查找以p開頭的文件,這里的p就是管道文件類型了。
管道一般的許可權位是:所屬者有讀寫許可權,而所屬組與其他用戶都沒有許可權。

『柒』 Linux系統中有哪幾種文件類型

第一種:普通文件。就是一般存取的文件,由ls-al顯示出來的屬性中,第一個屬性為 [-];另外,依照文件的內容,又大致分為:
1、純文本文件:這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容可以直接讀到數據,比如數字、字母等。設置文件幾乎都屬於這種文件類型。
2、二進制文件:系統其實僅認識且可以執行二進制文件。Linux中的可執行文件就是這種格式的。
3、數據格式的文件:有些程序在運行過程中,會讀取某些特定格式的文件,那些特定格式的文件也可以稱為數據文件。
第二種:目錄文件。就是目錄,第一個屬性為[d]。
第三種:連接文件。類似Windows下的快捷方式,第一個屬性為[l]。
第四種:設備文件。與系統外設及存儲等相關的一些文件,通常都集中在/dev目錄,又分為兩種。
1、塊設備文件:就是存儲數據以供系統存取的介面設備,簡單而言就是硬碟,第一個屬性為 [b]。
2、字元設備文件:即串列埠的介面設備,比如鍵盤、滑鼠等,第一個屬性為 [c]。
第五種:套接字文件:這類文件通常用在網路數據連接,可以啟動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為[s],常在
/var/run目錄中看到這種文件類型。
第六種:管道文件:FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤,FIFO是first-in-first-out的縮寫,第一個屬性是[p]。
更多Linux知識,可關注「老男孩Linux」公眾號

『捌』 "Linux的常用的文件類型分為哪六種各自的標志符是什麼

在Linux中,有一句經典的話叫做一切皆文件」。

文件分類:

(1)普通文件(regular):存在於外部存儲器中,用於存儲普通文件。

(2)目錄文件(directory):用於存放目錄項,是文件系統管理的重要文件類型。

(3)管道文件(pipe):一種用於進程間通信的特殊文件,也稱為命名管道FIFO。

(4)套接字文件(socket):一種用於網路間通信的特殊文件。

(5)鏈接文件(link);用於間接訪問另外一個目標文件,相當於widows快捷方式。

(6)字元設備文件(character):字元設備在應用層的訪問結構。

(7)塊設備文件(block):塊設備在應用層的訪問介面。

在linux終端下輸入ls -l命令,學習linux每條文件信息的最左邊的一個字元即表示了該文件的類別:

b:塊設備文件

c:字元設備文件

d:目錄文件

l:鏈接文件

p:管道文件

-:普通文件

s:套接字文件

『玖』 linux 管道原理

Linux原理的學習,我打算由淺入深,從上之下,也就是先了解個大概再逐個深入。先了解一下Linux的進程先。

一、Linux進程上下文

Linux進程上下文,我理解就是進程組成元素的集合。包括進程描述符tast_struct,正文段,數據段,棧,寄存器內容,頁表等。

1)tast_struct

它是一種數據結構,存儲著進程的描述信息,例如pid,uid,狀態,信號項,打開文件表等。是進程管理和調度的重要依據。

2)用戶棧和核心棧

顧名思義,用戶棧是進程運行在用戶態使用的棧,含有用戶態執行時候函數調用的參數,局部變數等;核心棧是該進程運行在核心態下用的棧,保存調用系統函數所用的參數和調用序列。這兩個棧的指針都保存在tast_struct結構中。

3)寄存器

保存程序計數器,狀態字,通用寄存器,棧指針。

4)頁表

線性地址到物理地址的映射

5)正文段,數據段。

二、Linux進程的狀態

Linux中進程共有5個狀態:就緒,可中斷睡眠,不可中斷睡眠,暫停,僵死。也就是說,linux不區分就緒和運行,它們統一叫做就緒態。進程所處的狀態記錄在tast_struct中。

三、進程的控制

1)進程樹的形成

計算機啟動後,BIOS從磁碟引導扇區載入系統引導程序,它將Linux系統裝入內存,並跳到內核處執行,Linux內核就執行初始化工作:初始化硬體、初始化內部數據結構、建立進程0。進程0創建進程1,進程1是以後所有創建的進程的祖先,它負責初始化所有的用戶進程。進程1創建shell進程,shell進程顯示提示符,等待命令的輸入。

2)進程的創建

任何一個用戶進程的創建都是由現有的一個進程完成的,進程的創建要經過fork和exec兩個過程。Fork是為新進程分配相應的數據結構,並將父進程的相應上下文信息復制過來。Exec是將可執行文件的正文和數據轉入內存覆蓋它原來的(從父進程復制過來的),並開始執行正文段。

3)進程的終止

系統調用exit()就可自我終結,exit釋放除了tast_struct以外的所有上下文,父進程收到子進程終結的消息後,釋放子進程的tast_struct。

4)進程的調度

進程的調度是由schele()完成的,一種情況是,當處理機從核心態向用戶態轉換之前,它會檢查調度標志是否為1,如果是1,則運行schele(),執行進程的調度。另一種情況是進程自動放棄處理機,時候進行進程調度。

進程的調度過程分為兩步,首先利用相關策略選擇要執行的進程,然後進行上下文的切換。

四、進程的通信

進程的通信策略主要有,消息,管道,消息隊列,共享存儲區和信號量。

1)信息

消息機制主要是用來傳遞進程間的軟中斷信號,通知對方發生了非同步事件。發送進程將信號(約定好的符號)發送到目標進程的tast_struct中的信號項,接收進程看到有消息後就調用相應的處理程序,注意,處理程序必須到進程執行時候才能執行,不能立即響應。

2)管道

我理解就是兩個進程使用告訴緩沖區中的一個隊列(每兩個進程一個),發送進程將數據發送到管道入口,接收進程從管道出口讀數據。

3) 消息隊列

消息隊列是操作系統維護的一個個消息鏈表,發送進程根據消息標識符將消息添加到制定隊列中,接收進程從中讀取消息。

4)共享存儲區

在內存中開辟一個區域,是個進程共享的,也就是說進程可以把它附加到自己的地址空間中,對此區域中的數據進行操作。

5)信號量

控制進程的同步。

『拾』 linux drwxr-xr-x 什麼意思

1、讀(read),寫(write),執行r(recute)簡寫即為(r,w,x),亦可用數字來(4,2,1)表示

4、文件的許可權為rw-r-r-也就是分別表示所有者(屬主)有讀寫許可權,所有組(屬組)有讀許可權,其餘人也僅有讀許可權。

5、普通文件即實際保存數據的地方,其並不具備刪除自身的許可權:

r:可讀取文件的實際內容

w:可編輯、新增、修改該文件的實際內容

x:可被執行

6、目錄文件即保存有目錄結構和文件許可權:

r:可讀取目錄結構和許可權

w:可更改目錄結構列表、新建、刪除、重命名、轉移子文件、目錄

x:表示用戶可進入到該目錄中

(10)linux管道文件擴展閱讀:

1、Linux的文件基本上分為三個屬性:可讀(r),可寫(w),可執行(x)。但是這里有十個格子可以添(具體程序實現時,實際上是十個bit位)。第一個小格是特殊表示格,表示目錄或連結文件等等,d表示目錄,例如drwx------;l表示連結文件,如lrwxrwxrwx;如果是以一橫「-」表示,則表示這是文件。其餘剩下的格子就以每3格為一個單位。

2、因為Linux是多用戶多任務系統,所以一個文件可能同時被許多人使用,所以我們一定要設好每個文件的許可權,其文件的許可權位置排列順序是(以-rwxr-xr-x為例):

rwx(Owner)r-x(Group)r-x(Other)

3、這個例子表示的許可權是:使用者自己可讀,可寫,可執行;同一組的用戶可讀,不可寫,可執行;其它用戶可讀,不可寫,可執行。另外,有一些程序屬性的執行部分不是X,而是S,這表示執行這個程序的使用者,臨時可以有和擁有者一樣權力的身份來執行該程序。一般出現在系統管理之類的指令或程序,讓使用者執行時,擁有root身份。

熱點內容
商城前端源碼 發布:2025-01-13 14:08:43 瀏覽:48
每個人身上都有密碼是什麼 發布:2025-01-13 14:08:40 瀏覽:472
怎麼看java 發布:2025-01-13 13:54:18 瀏覽:10
沒腳本導演 發布:2025-01-13 13:52:22 瀏覽:339
獲取android簽名 發布:2025-01-13 13:40:21 瀏覽:595
單片機編譯器和驅動 發布:2025-01-13 13:31:33 瀏覽:440
tis伺服器怎麼進pe 發布:2025-01-13 13:31:02 瀏覽:277
android線程與線程通信 發布:2025-01-13 13:30:27 瀏覽:39
FTP伺服器本地策略 發布:2025-01-13 13:20:47 瀏覽:486
地下城堡2掛機腳本 發布:2025-01-13 13:20:44 瀏覽:206