我正在开发在缓冲区中读写的简单内核模块,我有这种缓冲结构。
// Data buffers structure
typedef struct dnode
{
int bufSize;
char *buffer;
struct dnode *nextNode;
} data_node;
data_node *newNode
现在假设我想从用户复制到大小低于bufSize的struct buf数据,所以下次我想从最后复制的数据的末尾开始复制:
ex: blocSIze = 512
我复制了10,所以502离开了,所以下次我要复制到502个可用空间中的同一个缓冲区,所以一个
我应该在copy_from_user
函数中修改什么才能在缓冲区结构中使用偏移量进行复制
copy_from_user(newNode->buffer, buf, size);
答案 0 :(得分:0)
如果要在偏移char* buffer
复制到10
,则只需将buffer + 10
作为第一个参数传递。 - zch