mknod 函数

mknod 函数用于创建各种类型的文件,包括普通文件、特殊文件以及设备文件。 因为普通文件可以使用 open 或 create 创建,FIFO 文件可以使用 pipe 函数创建,所以 mknod 函数主要用于设备文件的创建。

设备文件与普通文件的区别

设备文件是文件系统中代表设备的特殊文件。与普通的文件相比,设备文件在磁盘(或宿主文件系统所的在其它设备)上只占用一个索引节点,而没有任何用于存放数据的记录块与之相联系。当然,这是因为设备文件的目的并不在于存储和读取数据,而只在于为应用程序提供一条通向具体设备的途径,使应用程序可以跟具体设备建立起连接。

普通文件(以及某些特殊文件)可以通过系统调用 open 来创建,只要在调用参数中或上 O_CREAT 标志,就可以让open函数在目标文件不存在时先创建这个文件。当然也可通过调用 creat() 来直接创建文件,事实上 sys_creat() 就是通过 sys_open() 实现的。可是这两个系统调用都不能用来创建设备文件,因为设备文件的创建需要有一个参数来传递设备号,而 open 和 creat 函数都不包括这个参数。此时就是 mknod 函数存在的意义了。

头文件 #include sys/stat.h

path 设备所在目录

mode 指定设备的类型和读写访问标志,可能的类型有:

参数类型 含义 S_IFMT type of file 文件类型掩码 S_IFREG regular 普通文件 S_IFBLK block special 块设备文件 S_IFDIR directory 目录文件 S_IFCHR character special 字符设备文件 S_IFIFO fifo 管道文件 S_IFNAM special named file 特殊文件 S_IFLNK symbolic link 链接文件

dev dev 表示设备,由makedev(1, 9) 函数创建,9为主设备号、1为次设备号,如果是普通文件此项直接设置为 0 即可。

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:mknod 函数 https://www.yhzz.com.cn/a/14771.html

上一篇 2023-05-12 11:04:26
下一篇 2023-05-12 11:06:26

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。