Linux命令 mknod - 創(chuàng)建字符設(shè)備文件和塊設(shè)備文件

2022-03-12 10:45 更新

mknod

創(chuàng)建字符設(shè)備文件和塊設(shè)備文件

補充說明

mknod命令 用于創(chuàng)建Linux中的字符設(shè)備文件和塊設(shè)備文件。

語法

mknod(選項)(參數(shù))

選項

-Z:設(shè)置安全的上下文;
-m:設(shè)置權(quán)限模式;
-help:顯示幫助信息;
--version:顯示版本信息。

參數(shù)

  • 文件名:要創(chuàng)建的設(shè)備文件名;
  • 類型:指定要創(chuàng)建的設(shè)備文件的類型;
  • 主設(shè)備號:指定設(shè)備文件的主設(shè)備號;
  • 次設(shè)備號:指定設(shè)備文件的次設(shè)備號。

實例

ls -la /dev/ttyUSB*
crw-rw—- 1 root dialout 188, 0 2008-02-13 18:32 /dev/ttyUSB0
mknod /dev/ttyUSB32 c 188 32

擴展知識

Linux的設(shè)備管理是和文件系統(tǒng)緊密結(jié)合的,各種設(shè)備都以文件的形式存放在/dev目錄 下,稱為設(shè)備文件。應(yīng)用程序可以打開、關(guān)閉和讀寫這些設(shè)備文件,完成對設(shè)備的操作,就像操作普通的數(shù)據(jù)文件一樣。

為了管理這些設(shè)備,系統(tǒng)為設(shè)備編了號,每 個設(shè)備號又分為主設(shè)備號和次設(shè)備號。主設(shè)備號用來區(qū)分不同種類的設(shè)備,而次設(shè)備號用來區(qū)分同一類型的多個設(shè)備。對于常用設(shè)備,Linux有約定俗成的編 號,如硬盤的主設(shè)備號是3。

Linux為所有的設(shè)備文件都提供了統(tǒng)一的操作函數(shù)接口,方法是使用數(shù)據(jù)結(jié)構(gòu)struct file_operations。這個數(shù)據(jù)結(jié)構(gòu)中包括許多操作函數(shù)的指針,如open()、close()、read()和write()等,但由于外設(shè) 的種類較多,操作方式各不相同。Struct file_operations結(jié)構(gòu)體中的成員為一系列的接口函數(shù),如用于讀/寫的read/write函數(shù)和用于控制的ioctl等。

打開一個文件就是調(diào)用這個文件file_operations中的open操作。不同類型的文件有不同的file_operations成員函數(shù),如普通的磁盤數(shù)據(jù)文件, 接口函數(shù)完成磁盤數(shù)據(jù)塊讀寫操作;而對于各種設(shè)備文件,則最終調(diào)用各自驅(qū)動程序中的I/O函數(shù)進行具體設(shè)備的操作。這樣,應(yīng)用程序根本不必考慮操作的是設(shè) 備還是普通文件,可一律當作文件處理,具有非常清晰統(tǒng)一的I/O接口。所以file_operations是文件層次的I/O接口。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號