无法回显到 MKNOD 创建的设备文件或从中回显

can't echo to or cat from a device file that was created by mknod

本文关键字:文件 创建 MKNOD      更新时间:2023-10-16

我在/dev/文件夹中创建了一个字符设备文件:

mode_t mode = S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH|S_IFCHR;

const char * pathname = "/dev/tty.myown;"

int res = mknod(pathname, mode, 0);

它成功创建了字符设备文件。因此,我通过调用cat /dev/tty.myown来调用cat,然后尝试通过运行:echo "hello world" > /dev/tty.own向其发送消息。但是,该消息未显示在cat流中。我想知道我还需要在该文件上设置哪些其他设置,以便能够从该设备文件读取

posix标准(.1-2001(状态:

MKNOD((的唯一便携式用途是创建一个FIFO特殊文件。如果模式不是s_ififo或dev不是0,则未指定的mknod((行为

您正在尝试创建一个字符特殊文件(即不是s_ififo(。特别是,在Linux上,设备编号0是一个无效的设备,该设备绝对不做任何事情。如果您想要FIFO,请设置S_IFIFO而不是S_IFCHR