gpt4 book ai didi

c++ - 无法从 mknod 创建的设备文件回显或 cat

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:57 24 4
gpt4 key购买 nike

我在/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">/开发/tty.own。但是,该消息未显示在 cat 流中。我想知道我需要在该文件上设置哪些其他设置才能从该设备文件中读取

最佳答案

POSIX 标准 (.1-2001) 规定:

The only portable use of mknod() is to create a FIFO-special file. If mode is not S_IFIFO or dev is not 0, the behavior of mknod() is unspecified

您正在尝试创建一个字符特殊文件(即不是 S_IFIFO)。特别是,在 Linux 上,设备号 0 是 a null device应该什么都不做。如果您需要 FIFO,请设置 S_IFIFO 而不是 S_IFCHR

关于c++ - 无法从 mknod 创建的设备文件回显或 cat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com