Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从用户函数复制用户函数:使用offsert写入_Linux_Kernel Module - Fatal编程技术网

Linux 从用户函数复制用户函数:使用offsert写入

Linux 从用户函数复制用户函数:使用offsert写入,linux,kernel-module,Linux,Kernel Module,我正在开发简单的内核模块,在缓冲区中读写,我有这种缓冲区结构 // Data buffers structure typedef struct dnode { int bufSize; char *buffer; struct dnode *nextNode; } data_node; data_node *newNode 现在假设我想从user复制到struct buf data,其大小小于bufSize,那么下次我想从上次复

我正在开发简单的内核模块,在缓冲区中读写,我有这种缓冲区结构

    // Data buffers structure 
    typedef struct dnode
    {
      int   bufSize;
      char *buffer;
      struct dnode *nextNode;
} data_node;
data_node *newNode
现在假设我想从user复制到struct buf data,其大小小于bufSize,那么下次我想从上次复制数据的末尾开始复制:

ex: blocSIze = 512
我复制了10个,所以502留下了,所以下次我想复制到502空闲空间中的同一个缓冲区中

我应该在
copy\u from\u user
函数中修改什么,以便能够使用缓冲区结构中的偏移量进行复制

copy_from_user(newNode->buffer, buf, size);

如果要在偏移量
10
处复制到
char*buffer
,只需将
buffer+10
作为第一个参数传递即可zch

我不确定我是否理解正确,但如果您想复制到偏移量
10
处的
char*buffer
,那么只需将
buffer+10
作为第一个参数传递即可。@zch是的,这是我正在寻找的,它运行良好,谢谢