uint32_t unmask =1;
ssize_t rv =
write
(_fd,
&unmask,
sizeof
(unmask)
);
字元特殊檔案和塊特殊檔案。區別在於作業系統和硬體讀取和寫入的資料量
塊裝置(block devices)
偽裝置(pseudo-devices)
/ dev / null - 接受並放棄所有輸入; 不產生輸出(總是在讀取時返回檔案結束指示)
/ dev / zero - 接受並放棄所有輸入; 產生連續的nul(零值)位元組流
/ dev / full - 讀取時會產生連續的nul(零值)位元組流,並在寫入時返回「磁碟已滿」訊息
/ dev / random和/ dev / urandom - 它們產生乙個可變長度的偽隨機數字流。
lp:行式印表機(比較lp)
pt:偽終端(虛擬終端)
tty:終端
一些額外的字首已經在一些作業系統中普遍使用:
fb:幀緩衝區
fd :(平台)軟盤,儘管這個縮寫也常用來指檔案描述符
高畫質:(「經典」)ide驅動程式(以前用於ata硬碟驅動器,atapi光碟驅動器等)
hda:第乙個ata通道上的主裝置(通常由主編號3和次編號0標識)
hdb:第乙個ata通道上的從屬裝置
hdc:第二個ata通道上的主裝置
hdc1:此磁碟上的第乙個主分割槽(示例)
hdc5:擴充套件分割槽中的第乙個邏輯驅動器(示例)
hdd:第二個ata通道上的從屬裝置
parport,pp:並行埠
scsi驅動程式,也被libata(現代pata / sata驅動程式),usb,ieee 1394等使用。
sd:大容量儲存驅動程式
sda:首次註冊的裝置
sda4:此磁碟上的最後乙個分割槽(示例)
sda6:擴充套件分割槽中的第二個邏輯驅動器(示例)
sdb,sdc等:第二,第三等註冊裝置
ses:機箱驅動程式
sg:通用scsi層
sr:「rom」驅動程式(面向資料的光碟驅動器; scd只是乙個輔助別名)
st:磁帶驅動器
tty:終端
ttys :(平台)串列埠驅動程式
ttyusb:usb串列埠轉換器,數據機等
函式read()實現從檔案描述符fd所指定的檔案中讀取length個位元組到buf所指向的緩衝區中,返回值為實際讀取的位元組數。
函式write實現把length個位元組從buf指向的緩衝區中寫到檔案描述符fd所指向的檔案中,返回值為實際寫入的位元組數。
映像檔案如何作為塊裝置操作
假如先有乙個磁碟映像檔案,其中包含了分割槽,檔名為 test.img 首先,建立乙個loop檔案,假如是loop99 sudo mknod dev loop99 b 7 99將 test.img 與 loop99 繫結,並掃瞄其分割槽表,建立各分割槽的loop檔案 如果 test.img 包含了兩個...
字元裝置驅動 裝置號 裝置檔案
主裝置號用來標識與裝置檔案相連的驅動程式.用來反映裝置型別.次裝置號被驅動程式用來辨別操作的是哪乙個裝置.用來區分同型別的裝置.通過的是主裝置號.字元裝置檔案 本身沒有太多的內容,通過 字元裝置檔案 能找到 字元裝置驅動程式 字元裝置檔案 能將 應用程式 的需求傳遞給 字元裝置驅動程式.核心中如何描...
字元裝置操作
file operations 結構體中成員函式是字元裝置驅動與核心的介面,是使用者空間對linux 進行系統呼叫最終的落實者。大多數字元裝置驅動會實現read write 和ioctl 函式.字元裝置驅動讀 寫 i o控制函式模板 1 讀裝置 2 ssize t read struct file ...