如何将数据保存到设备文件?
Posted
技术标签:
【中文标题】如何将数据保存到设备文件?【英文标题】:How can I save data to a device file? 【发布时间】:2018-11-09 06:31:38 【问题描述】:我目前正在构建一个内核模块,该模块在 /dev 下创建一个设备,并且我想在设备文件中存储一些数据。但是,每次我尝试写入设备文件时,都不会将任何内容保存到该特定文件中。
目前,我尝试使用 device_write/device_read 但没有成功,因为我正在写入的数据在再次运行用户程序后没有保存在内核空间中。我也尝试过使用来自用户程序的 ioctl 调用并使用 copy_from_user 和 copy_to_user 但这也不会保存任何数据。
【问题讨论】:
您希望如何存储数据? “设备文件”不是一种存储形式。向我们展示您的代码。 【参考方案1】:仅仅通过在 /dev 中创建一个设备节点并不意味着你有一个可以读/写的设备。它只是一个从用户空间与硬件对话的句柄。如果您正在为某些块设备 SD/USB 创建驱动程序,则需要参考设备特定框架。
如果您只是创建一个虚拟设备并想要实现读/写,您可以在探针和 device_write 中分配一些内核内存,复制到该内存并在 device_read 中读取内存的内容。
【讨论】:
以上是关于如何将数据保存到设备文件?的主要内容,如果未能解决你的问题,请参考以下文章