【发布时间】:2014-10-10 11:53:53
【问题描述】:
我正在开发在缓冲区中读写的简单内核模块,我有这种缓冲区结构。
// Data buffers structure
typedef struct dnode
{
int bufSize;
char *buffer;
struct dnode *nextNode;
} data_node;
data_node *newNode
现在假设我想从用户复制到大小低于 bufSize 的结构 buf 数据,所以下次我想从上次复制数据的末尾开始复制:
ex: blocSIze = 512
我复制了10个,所以剩下502个,所以下次我想复制到502空闲空间中的同一个缓冲区等等一个
我应该在copy_from_user 函数中修改什么以便能够在缓冲区结构中使用偏移量进行复制
copy_from_user(newNode->buffer, buf, size);
【问题讨论】:
-
我不确定我是否理解正确,但如果你想复制到
char* buffer的偏移量10,那么只需将buffer + 10作为第一个参数传递。 -
@zch 是的,这就是我正在寻找的东西,它运作良好,谢谢
标签: linux kernel-module