linux 驱动开发,mkdir命令创建文件

首先,我们来看一下linux系统中设备管理的基本知识。

我们的linux操作系统与外部设备例如磁盘、光盘等)的通信都是通过设备文件进行的,APP应用可以打开、关闭这些设备文件,或者从这些设备中读取数据,并向这些设备写入数据这个操作和读写普通文件一样是easy的。 linux为各种类型的设备文件如read ,write )、open 打开)和close )提供相同的接口。

因此,在系统与设备进行通信之前,请先创建设备文件。 此设备文件存储在/dev目录中。 实际上,系统缺省生成许多设备文件,但您可能需要自己手动创建一些设备文件。 在这种情况下,请使用mkdir、mknod等命令。

mknod的标准格式为: mknod devname { b|c } major minor

DEVNAME是要创建的设备文件名。 如果要将设备文件放在特定文件夹下,则必须首先在mkdir的dev目录下创建一个新目录。

2、b和c分别表示块设备和字符设备。

b表示系统从块设备读取数据时,直接从内存缓冲区读取数据,而不通过磁盘。

c表示字符设备文件和设备在传输数据时作为字符进行传输,一次传输一个字符。 例如,打印机、终端作为文字传输数据。

3、MAJOR和MINOR分别表示主设备编号和副设备编号。

为了管理设备,系统为每个设备分配一个编号。 1个设备编号由主设备编号和辅助设备编号组成。 主要设备编号表示一种设备类型,而次要设备编号用于区分同一类型的设备。 在linux操作系统中,设备文件编号被指定为32位无符号整数。 其中,前12位为主设备编号,后20位为从设备编号,因此向系统申请设备文件时,主设备编号不能超过4095,从设备编号不能超过2^20 -1。

问题如何在linux上显示设备的主设备编号

如果要静态分配设备编号,则必须检查系统中已存在的设备编号,以确定要使用的新设备编号。 可以读取/proc/devices文件以获取设备的设备编号。 /proc/devices文件包含字符设备和块设备的设备编号,如下所示:

[ root @ Tom/] # cat/proc/devices/* cat命令/proc/devices显示文件的内容*

Character devices: /*字符设备*/

1毫米

4 /dev/vc/0

7 vcs

13输入

14森德

21 sg

块设备:/*块设备*

1磁盘

2软盘

8 sd

253设备映射器

254 mdp

此时例如ls -l /dev/input

crw—-1root root 13,64 feb 221:39 event 0

crw—-1root root 13,65 feb 221:39 event 1

crw—-1root root 13,66 feb 221:39 event 2

crw—-1root root 13,67 feb 221:39 event 3

crw—-1root root 13,63 feb 221:39 mice

crw—1 root root 13,32 feb 221:39 mouse 0

crw—-1root root 13,33 feb 221:39 mouse 1

很明显,input设备下的主设备编号为13,辅助设备编号用于通过事件和mice进行区分。

问题2 :使用2:mknod

mknod

定义: mknod-makeblockorcharacterspecialfiles

语法: mknod /dev/ttyUSBn c Major Minor

1,n必须等于次要编号Minor,且小于主要编号Major。

2、c:字符设备b:块设备,例如磁盘、软盘、磁带; 其他设备基本上是文字设备)。

删除的时候像普通的文件删除一样使用rm命令就可以了

此外,mknod还可以创建管道文件爱。 后面的c和b的位置写p就可以了

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注