Linux字符设备驱动程序:如何处理信号?

时间:2016-05-31 09:56:27

标签: c linux kernel linux-device-driver

我正在尝试创建一个小的char设备驱动程序,它将文件创建为/dev/foobar。在文件操作回调中,我有

ssize_t read(file* filp, char* buf, size_t count, loff_t* f_pos) 
{ 
   printk(KERN_INFO "device_read(%p,%s,%d)", filp, buf, count);
   return 0;

}

ssize_t write(file* filp, char* buf, size_t count, loff_t* f_pos) 
{
   printk(KERN_INFO "device_write(%p,%s,%d)", filp, buf, count);
   return 0;
}

但是当我尝试使用cat /dev/foobar从文件中读取时,它会完全填充消息缓冲区并且系统停止运行并且我必须删除/var/log/或其中的一些内容,因为我的虚拟驱动器是满。

我不能用Ctrl-C或其他东西中止阅读。我怎样才能使这个过程流产?

0 个答案:

没有答案