gpt4 book ai didi

linux - "cat"命令在从 Linux 设备驱动程序读取时终止

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:33 25 4
gpt4 key购买 nike

我在操作系统课上有一个作业要制作一个简单的伪堆栈 Linux 设备驱动程序。例如,如果我要向设备驱动程序写入“Hello”,当我从中读取时它会返回“olleH”。我们必须用 C 构建一个测试程序来调用设备驱动程序的读/写函数来证明它以 FILO 方式运行。我已经完成了所有这些,并且我认为我的测试程序演示了任务的目的;然而,出于好奇,我在 BASH 中执行了以下命令:

echo "Test">/dev/driver

cat/dev/driver

其中/dev/driver 是我使用“mknod”创建的特殊文件。但是,当我这样做时,我得到一个充满错误的黑屏。在我使用 CNTRL+ALT+F7 切换回 GUI View 后,我看到 BASH 已返回“Killed”。

有谁知道可能导致这种情况发生的原因是什么?我很困惑,因为我的测试程序调用 open()、read() 和 write() 时一切正常。

如果我需要显示一些代码,请询问。

最佳答案

写入您提供的缓冲区的设备驱动程序中的函数很可能导致此问题。

要调试,您可以执行以下操作:

  • 首先,确保阅读部分没问题。您可以在读取输入后printk您的内部缓冲区以确保这一点。

  • 其次,在您的写入函数中,printk 一些信息,而不是实际写入任何内容,并确保一切正常。

此外,确保作者明确表示写入已结束。我不是特别确定设备驱动程序,但是您需要返回 0 作为第二次调用时写入的字节数,或者设置一个 eof 变量(如果这是您函数的参数之一)

关于linux - "cat"命令在从 Linux 设备驱动程序读取时终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212970/

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