c - copy_to_user 在索引处设置数组
问题描述
我正在编写一个字符设备驱动程序,但此刻它冻结了,我必须重新启动才能停止它或崩溃并且终端退出我有一个全局数组
char* array;
我使用kmalloc(9, GFP_KERNEL)
它,所以它应该是 9 的大小。如果我想用来file operations .write
设置一个特定的索引,我会怎么做?这是我当前的代码(崩溃和终端退出)
ssize_t mydriver_write(struct file *filp, const char* buf, size_t count, loff_t *f_pos)
{
raw_copy_to_user(array[*buf], 'x', 1);
}
编辑:我也已经尝试过这个版本
raw_copy_to_user(&array[3], x, 1);
x
kmalloc 的大小在哪里1x[0]='x'
但在这种情况下,我的程序冻结,我无法删除驱动程序,机器需要重新启动才能删除它。
解决方案
推荐阅读
- sql - 我们可以使用维恩图来表征 INNER、OUTER、LEFT 和 RIGHT JOIN 之间的关系吗?
- ruby-on-rails - Rails:包含在模型范围内不起作用
- html - 如何使页面可以左右滑动角度?
- reactjs - 为什么反应上下文需要提供者?
- c# - 如何为我的 C# windows 应用程序创建 CMD 命令?
- python - 有人可以解释批量大小和每个时期的步数之间的关系吗?
- windows - Rename-Item:访问路径被拒绝(Flutter升级)
- python - 删除多个文件夹中的图像(Python)
- c++ - 是否可以使用一个元组来索引另一个元组?
- javascript - 输入文本 - “defaultValue”未加载状态值,“value”未在更改时更新