gpt4 book ai didi

c - 如何从命令行使用创建的 Linux 内核字符驱动程序

转载 作者:行者123 更新时间:2023-11-30 19:27:48 25 4
gpt4 key购买 nike

我一直在关注这里的 Linux 内核编程教程:http://www.tldp.org/LDP/lkmpg/2.6/html/index.html

我已经进入了专门讨论“字符设备驱动程序”的部分,虽然我已经编译它,但它无法在所描述的情况下运行:

“当进程写入 dev 文件时调用:echo "hi">/dev/chardev"

我尝试了几个 Linux 控制台命令,例如:

回显“嗨”> sudo/dev/chardev/

sudo sh -c 'printf“hi”> sudo/dev/chardev/'

我正在 Raspberry Pi 3 B+ 上运行我的代码

当我运行第一个命令时,我不会得到任何返回,并且/var/logs/messages 中不会添加任何内容

当我运行第二个命令时,我得到:sh:printf: I/O 错误

完整代码位于:http://www.tldp.org/LDP/lkmpg/2.6/html/x569.html

我已经用下面的代码片段修改了代码。

/*  
* Called when a process writes to dev file: echo "hi" > /dev/chardev
*/
static ssize_t
device_write(struct file *filp, const char *buff, size_t len, loff_t * off)
{
printk(KERN_INFO "%s\n", buff);
return -EINVAL;
}

我期望发生的是,当我使用 echo "hi"> sudo/dev/chardev 时,在我的/var/logs/messages 中会出现一行简单地说“hi”。

最佳答案

echo "hi" > /dev/chardev

这样就可以了。

echo "hi" > sudo /dev/chardev/

这是无效的。这将echo hi/dev/chardev/并将其写入名为sudo的文件。并且不要 /dev/chardev/,它不是一个目录,它是一个文件,它是 /dev/chardev (没有 / > 在最后)。

sudo sh -c 'printf "hi" > sudo /dev/chardev/'

与上面相同的错误。

如果您想使用 sudo 附加到文件,请使用 tee,如 echo hi | sudo tee/dev/chardev。或者,如果您必须sudo sh -c 'echo "hi">/dev/chardev'

关于c - 如何从命令行使用创建的 Linux 内核字符驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365339/

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