1. 程式人生 > >管道檔案和I/O檔案

管道檔案和I/O檔案

mknod--------建立命名管道(I/O快取)
/etc/mknod pipe_name p    引數p 必須出現在命名管道名字之後


為什麼用mknod建立檔案,而不用touch呢?
touch 只能建立普通檔案,
管道、字元裝置、塊裝置等特殊檔案就要用 mknod

管道檔案是p打頭的
$ mknod pipe1 p
$ ls -l
-rw-rw-r-- 1 macg macg 108 Jan 20 02:21 111-tmp.txt
-rw-rw-r-- 1 macg macg 1269764 Jan 3 11:24 asian_0264_4.mpg
prw-rw-r-- 1 macg macg 0 Jan 20 09:51 pipe1


通過管道檔案,可以實現兩個程式(可以從不同機器上telnet)實時互動

O   一些程序就可以不斷地將資訊寫入管道檔案
I   另一些程序也可以不斷地從管道檔案中讀取資訊
對命名管道檔案的讀寫操作是可以同時進行的

一個管道檔案作為兩臺機器的I/O通訊通道,但這個檔案不能用touch建立,必須用mknod建立
$ vi in.sh
if [ ! -p pipe1 ]
then
mknod pipe1 p
fi

while true
do
read msg 這裡read msgmsg是來自done <pipe1
if [ "$msg" = "" ]
then
continue
else
echo " $msg"
fi
done < pipe1
看效果
一臺機器起用in.sh
$ sh in.sh
另一臺執行任意命令,把輸出定向到pipe1
total 1320
-rw-rw-r-- 1 macg macg 108 Jan 20 02:21 111-tmp.txt
prw-rw-r-- 1 macg macg 0 Jan 20 10:23 pipe1
-rw-rw-r-- 1 macg macg 173 Jan 20 03:07 ttt1
-rw-rw-r-- 1 macg macg 64 Jan 20 05:40 ttt.sh

this is from anonther user
$ ls -l > pipe1
$
$ echo "this is from anonther user" > pipe1
$


exec 建立的I/O檔案,建立用<> ,引用用&
建立 exec 8<>pipe1
引用 telnet 192.168.1.12 <&8
引用I/O BUFFER要加&



exec 指令的<>之間不能有空格,否則報錯

[[email protected] tiptest]$ exec 8 <> pipe1
-bash: exec: 8: not found
[[email protected] tiptest]$ exec 8<>pipe1

相關推薦

管道檔案I/O檔案

mknod--------建立命名管道(I/O快取)/etc/mknod pipe_name p    引數p 必須出現在命名管道名字之後 為什麼用mknod建立檔案,而不用touch呢? touch 只能建立普通檔案, 像管道、字元裝置、塊裝置等特殊檔案就要用 mknod

Linux檔案I/O

Linux檔案和I/O 檔案基礎 檔案型別 標準I/O 系統呼叫 緩衝機制 流 緩衝型別 全緩衝 行緩衝 無緩衝 開啟

管道文件I/O文件用途

memcache telnetmknod pipe1 p與exec 8 pipe1指令合用,實現自動telnet功能mknod pipe1 p與exec 8 pipe1指令合用,實現自動telnet功能#vi autologin.shmknod pipe1 pexec 8<>pipe1 I/O文

Lua檔案I/O

在Lua裡面,讀取檔案分兩個模式:簡單模式 和 完全模式。 簡單模式:擁有當前一個讀入檔案和讀出檔案,在Lua I/O庫裡面提供相關的一些簡單的操作。 完全模式:使用檔案的控制代碼對檔案進行操作。 區別在於:簡單模式中對檔案的操作比較少,適合對單一的檔案做處理。如果我們同時對多個檔案

Python I/O 檔案操作Demo

import os # __file__ 表示當前檔案路徑 print(__file__) # os.getcwd() 表示當前的工作目錄 print(os.getcwd()) #桌面路徑 #1. 在當前檔案目錄下新建資料夾 pyTest,用__file__絕對路徑也可以 if not

C++ 檔案I/O

(出處:C++ Primer Plus  第6版  中文版_  17.4  檔案輸入和輸出) 一,寫入檔案 要讓程式寫入檔案,必須這樣做: 1,建立一個ofstream物件來管理輸入流; 2,將該物件與特定的檔案關聯起來; 3,以使用cout的方式使用該物件,唯一的

C語言--I/O檔案操作【下】

I/O檔案操作 這是C提供的另一種檔案操作,它是通過直接存/取檔案來完成對檔案的處理,而上篇所說流式檔案操作是通過緩衝區來進行;流式檔案操作是圍繞一個FILE指標來進行,而此類檔案操作是圍繞一個檔案的"控制代碼"來進行,什麼是控制代碼呢?它是一個整數,是系統用來

python中檔案I/O操作

簡介 I/O – Input/Output 輸入/輸出 讀寫檔案是最常見的IO操作,Python內建了讀寫檔案的函式 讀 -- 輸出 寫 -- 輸入 在磁碟上讀寫檔案的功能都是由作業系統提供的,作業系統是不允許普通程式直接操作磁碟的,所以,想要讀寫檔案

Linux系統程式設計學習筆記(1)-檔案I/O操作

概述 在Linux系統下,通常以一個非負整數來代指一個開啟的檔案,這些檔案可以包括終端,socket,裝置,普通檔案等等。規定的三個標準的檔案描述符為0,1,2下面分別介紹(在互動式shell中,這些檔案描述符通常指向shell執行所在的終端): 檔案描述

File I/O 檔案輸入輸出流

InputStream:位元組輸入流(抽象類)--》FileInputStream int read(): 從輸入流一個位元組一個位元組的讀,返回的是該位元組的整數表示形式,如果到了輸入流的末尾,返回-1 int read(byte[ ] b): 從輸入流讀取若個位元組,把這

linux檔案描述符,系統開啟檔案i節點的關係

首先區分檔案描述符和開啟的檔案 核心維護了三個資料結構 程序級的檔案描述符表(即每個程序一個) 系統級的開啟檔案表(即該表在整個核心中只有一個) 檔案系統的 i-node 表 針對每個程序,核心為其維護一個開啟的檔案描述

C#路徑/檔案/目錄/I/O常見操作彙總

 檔案操作是程式中非常基礎和重要的內容,而路徑、檔案、目錄以及I/O都是在進行檔案操作時的常見主題,這裡想把這些常見的問題作個總結,對於每個問題,儘量提供一些解決方案,即使沒有你想要的答案,也希望能提供給你一點有益的思路,如果你有好的建議,懇請能夠留言,使這些內容更加完善。

線程池線程數與(CPU密集型任務I/O密集型任務)的關系

使用 發送 crm系統 tro 1.2 長度 靜態資源 空閑 相同 近期看了一些JVM和並發編程的專欄,結合自身理解,來做一個關於(線程池線程數與(CPU密集型任務和I/O密集型任務)的關系)的總結: 1.任務類型舉例: 1.1: CPU密集型:

C檔案包含.h檔案包含.c檔案總結

原文連結:http://blog.csdn.net/yangtalent1206/article/details/6830051        很多人對C語言中的 “檔案包含”都不陌生了,檔案包含處理在程式開發中會給我們的模組化程式設計帶來很大的好處

mysql資料庫表結構定義檔案儲存引擎檔案

目錄 1.表結構定義檔案:      2.儲存引擎檔案 2.1表空間檔案 2.2重做日誌檔案 3. 如何用frm檔案恢復資料庫結構 1.表結構定義檔案:      *.frm 檔案是所有m

VC 6 0中新增庫檔案標頭檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

一分鐘學會讀csv檔案寫csv檔案(python實現)

  import csv with open('Python-Predict/Data/train.csv') as tra: rdr = csv.reader(tra) items = list(rdr) print("rdr:",rdr) print(items)

裝置I/OI/O記憶體的訪問

裝置通常會提供一組暫存器來控制裝置、讀寫裝置和獲取裝置狀態,即控制暫存器、資料暫存器和狀態暫存器。 這些寄器可能位於I/O空間中,也可能位於記憶體空間中。當位於I/O空間時,通常被稱為I/O埠;當位於記憶體空間時,對應的記憶體空間被稱為I/O記憶體。 每個外設都是通過讀寫其暫存器來控制的

application properties 檔案 application yml 檔案有什麼區別呢

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

用Makefile編譯靜態庫檔案動態庫檔案

    最近要用到的簽名演算法只給了一堆原始碼沒有給庫檔案,api都不好呼叫,於是嘗試著用Makefile給一堆c原始碼編譯靜態連結庫檔案和動態連結庫檔案。 Makefile檔案編輯的相關資料連結: https://www.cnblogs.com/yya