首页 > 解决方案 > 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);

xkmalloc 的大小在哪里1x[0]='x' 但在这种情况下,我的程序冻结,我无法删除驱动程序,机器需要重新启动才能删除它。

标签: clinuxubuntukerneldriver

解决方案


推荐阅读