mknod指令詳解

mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
? ? option 有用的就是 -m
? ? name ? 自定義
? ? type ? b c 還有 p
? ? 主設備號
? ? 次設備號


主設備號是由linux/major.h定義的,如下定義了一個DOC設備:
#define IGEL_FLASH_MAJOR 62

假如有一個命令mknod doc b 62 0
其中的doc為定義的名字,b指塊設備,0指的是整個DOC。如果把0換為1,1指的是DOC的第一個分區。2是第2個,對于塊設備次設備號就表示該塊設備上的分區號,依次類推。

至于mknod console c 5 1 的意思也很相似:
console是設備的名字
c指字符設備
5是該設備在major.h中定義的標記
1是第一個子設備

mknod console c 5 1
console
為設備文件名,自己隨便取
c
是指字符型設備 (可選b,塊設備)
5
是主設備號 /dev/devices里面記錄現有的設備
找個沒有用的就可以了
1
是次設備號,當你要給兩個同樣的設備上一個驅動的時候就要分了,從0開始,1就是第二個了 ,對于字符設備,次設備號就表示同類型設備的不同設備。

通常情況下,安裝系統時已經創建了常用的設備文件,可以直接訪問這些設備文件來訪問 設備。但在用戶重新定制內核,并添加了新硬件驅動程序之后,新驅動程序對應的設備文件就可能不存在。在FreeBSD中,最常見的例子就是在內核中增加聲 卡的驅動程序時,就需要創建相應設備文件。

創建設備文件的基本方式是使用mknod,但是必須知道該設備的正確設備號才可以。 另一種簡單的方式是使用/dev目錄下的shell程序 MAKEDEV來完成,MAKEDEV實質上就是記錄了很多設備的名字與其設備號之間的關系的程序,因此它能使用正確的設備號來創建設備。首先進入 /dev目錄,然后再執行MAKEDEV

# cd /dev

# sh MAKEDEV snd0

MAKEDEV將使用設備名作參數創建設備文件,同時也創建這個設備文件依賴的其他 相關設備文件。MAKEDEV的參數,并不一定為創建的設備文件名。例如建立 “MAKEDEV vty8” 將建立ttyv0ttyv78個設備文件,使用 “MAKEDEV wd1s1a” 命令,將建立 wd1wd1s1wd1s2等,以及wd1s1awd1s1b等設備文件。也可以使用allMAKEDEV的參數,這將首先清除/dev目錄下的 所有設備文件,然后MAKEDEV創建所有預設的設備文件。一般情況下這將創建足夠多的設備文件,其中的大部分設備文件在具體的系統中不會用得到。

如果對一個系統中沒有(或者即使有但內核沒有支持或探測到)的設備對應的設備文件進行操作,則系統返回Device not configured的錯誤信息。

MAKEDEV將使用mknod和對應設備的正確參數,包括字符或塊設備、主設備號 和從設備號來建立相應的設備文件。管理員也可以直接使用 mknod創建設備文件,但這就必須將這些設備參數統統指定正確才行。因此除非對系統中的硬件驅動程序特別熟悉,一般不直接使用mknod來創建設備文 件。
[root@can]# ll /dev/hd
hda ? hda1? hda2? hda3? hda4? hda5? hdc
[root@can]# ll /dev/hda
brw-r----- 1 root disk 3, 0 2008-12-18 /dev/hda
[root@can]# ll /dev/hda4
brw-r----- 1 root disk 3, 4 2008-12-18 /dev/hda4
[root@can]#


用戶還可以在命令行使用“mknod 管道名 p”來創建有名管道

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383265.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++中容器(STL)的共性與使用的時機

容器的共通能力 C模板是容器的概念 理論提高:所有容器提供的都是值(value)語意,而非引用(reference)語意。容器執 行插入元素的操作時,內部實施拷貝動作。所以 STL 容器內存儲的元素必須能夠被…

Qt Creator 窗體控件自適應窗口大小布局

常見的軟件窗口大小改變(最大化、手動改變時)需要窗口的部件能夠自適應布局,而在Qt的應用程序界面設計中,對于像我一樣的初學者如何實現窗口自適應調整還是要繞點彎路的。網上百度了很多,多數說的很含糊,還…

c++中利用STL實現公司員工分組問題

#include<iostream>using namespace std; #include<vector> #include<string> #include<map> #include<ctime> /* 公司招聘了5個員工&#xff0c;5名員工進入公司之后&#xff0c;需要指派員工在那個部門工作 的人員信息&#xff1a;姓名 年齡 電…

c++中STL的常用算法--1(函數對象,謂詞,內建函數對象)

函數對象 重載函數調用操作符的類&#xff0c;其對象常稱為函數對象&#xff08;function object&#xff09;&#xff0c;即它們是行為類似函數的對象&#xff0c;也叫仿函數&#xff08;functor&#xff09;&#xff0c;其實就是重載"()"操作符&#xff0c;使得類…

QT子線程與主線程的信號槽通信

最近用QT做一個服務器&#xff0c;眾所周知&#xff0c;QT的主線程必須保持暢通&#xff0c;才能刷新UI。所以&#xff0c;網絡通信端采用新開線程的方式。在涉及到使用子線程更新Ui上的控件時遇到了點兒麻煩。網上提供了很多同一線程不同類間采用信號槽通信的方式&#xff0c;…

ubuntu14.04 通過PPA 安裝ffmpeg

去ffmpeg的官網可以獲取到最新的PPA信息 http://www.ffmpeg.org/download.html 根據系統選擇對應的PPA 然后執行以下語句&#xff1a; sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get updatesudo apt-get install ffmpeg 如果在安裝過程中發生了錯誤&#…

c++中的函數適配器

函數適配器 函數適配器概念 STL中定義了大量的函數對象&#xff0c;但是有時候需要對函數返回值進行進一步的簡單計算&#xff0c;或者填上多余的參數&#xff0c;不能直接代入算法&#xff0c;函數適配器實現了這一功能&#xff0c;將一種函數對象轉化為另一種符合要求的函數…

c++中STL的常用算法---2(遍歷算法,查找算法)

算法概述 算法主要由頭文件組成是所有STL頭文件中最大的一個&#xff0c;其中常用的功能涉及到比較&#xff0c;交換&#xff0c;查找&#xff0c;遍歷&#xff0c;復制&#xff0c;修改&#xff0c;反轉&#xff0c;排序&#xff0c;合并等體積很小&#xff0c;只包括在幾個序…

c++中的STL的常用算法---3(排序算法,拷貝和替換算法,算術生成算法,集合算法)

排序算法 merge() 以下是排序和通用算法&#xff1a;提供元素排序策略 merge: 合并兩個有序序列&#xff0c;存放到另一個序列。 #include<iostream>using namespace std; #include<algorithm> #include<vector>void test01() {vector<int >v1;vecto…

c++中STL實現演講比賽流程

演講比賽流程 1&#xff09;某市舉行一場演講比賽&#xff0c;共有 24 個人參加&#xff0c;按參加順序設置參賽號。比賽共三輪&#xff0c;前兩 輪為淘汰賽&#xff0c;第三輪為決賽。 2&#xff09;比賽方式&#xff1a;分組比賽 第一輪分為 4 個小組&#xff0c;根據參賽號…

c++實現貪吃蛇

游戲中的實現元素 游戲中元素分為&#xff1a;墻壁&#xff0c;蛇&#xff0c;事物以及蛇的可行區域和右側的版本號和游戲玩法提示 墻壁 *號表示&#xff0c;代表一個區域范圍&#xff0c;也就是蛇的可移動區域&#xff0c;蛇如果碰到墻壁視為死亡&#xff0c; 蛇 分為蛇頭&a…

Linux系統編程--1(進程和程序,CPU和MMU,PCB,進程狀態)

進程相關概念 程序和進程 程序&#xff1a;是指編譯好的二進制文件&#xff0c;在磁盤上&#xff0c;不占用系統資源(cpu、內存、打開的文件、設備、鎖…) 進程&#xff1a;是一個抽象的概念&#xff0c;與操作系統原理聯系緊密。進程是活躍的程序&#xff08;程序員角度&…

C++STL學習

1. STL介紹標準模板庫STL是當今每個從事C編程的人需要掌握的技術&#xff0c;所有很有必要總結下本文將介紹STL并探討它的三個主要概念&#xff1a;容器、迭代器、算法。STL的最大特點就是&#xff1a;數據結構和算法的分離&#xff0c;非面向對象本質。訪問對象是通過象指針一…

Linux系統編程--2(環境變量,進程控制)

環境變量 環境變量 是指在操作系統中用來指定操作系統運行環境的一些參數 每個人用電腦的習慣不一樣&#xff0c;比如一般把文件放到磁盤&#xff0c;怎么管理文件&#xff0c;用什么編譯器&#xff0c;所以&#xff0c;環境變量就是根據每個人使用操作系統的習慣來規定一些參…

STL-vector

STL學習之二 序列容器&#xff08;vector&#xff09;一、C標準模板庫提供了三種序列容器&#xff1a;vector、list、deque。類模板vector和deque都以數組為基礎&#xff0c;類模板list實現了鏈表的數據結構。STL中最流行的是類模板vector&#xff0c;它是一種更健壯的數據類型…

套接字編程--1(UDP協議編程,端口號,傳輸層協議,網絡字節序)

傳輸層的協議&#xff1a; ip地址&#xff1a; 在網絡中唯一標識一臺主機 IPV4&#xff1a;uint32_t DHCP NATIPV6 : uint8_t addr[16] —向前并不兼容IPV4 每一條數據都必須包含源地址和目的地址&#xff1a;因為每條網絡中的數據都必須確定是從那個主機來到那個主機去 端…

ARP簡單介紹

ARP簡介 ARP&#xff08;Address Resolution Protocol&#xff09;用于將IP地址解析為MAC地址 1. ARP地址解析的必要性 IP地址不能直接用來進行通信&#xff0c;因為網絡設備只能識別MAC地址。IP地址只是主機在網絡層中的地址&#xff0c;如果要將網絡層中傳送的數據報交給…

Linux系統編程--3(exec 函數族,僵尸進程和孤兒進程,wait和wait_pid回收子進程)

exec 函數族 fork 創建子進程后執行的是和父進程相同的程序&#xff08;但有可能執行不同的代碼分支&#xff09; &#xff0c;子進程往往要調用一種 exec 函數以執行另一個程序。當進程調用一種 exec 函數時&#xff0c;該進程的用戶空間代碼和數據完全被新程序替換&#xff…

交換機MAC地址學習和轉發數據幀的原理

1 &#xff1a;交換機 MAC 地址學習在交換機初始化的&#xff0c;也就是剛啟動的時候&#xff0c;交換機的MAC地址表是沒有任何MAC地址和端口的映射條目的 當PCA要想和PCC&#xff0c;PCB,PCD進行通信時&#xff0c;當該二層數據幀通過端口E1/0/1發送到交換機上時&#xff0c…