【问题标题】:copy_from_user function : write with offsertcopy_from_user 函数:使用偏移量写入
【发布时间】: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


【解决方案1】:

如果您想在偏移量10 处复制到char* buffer,则只需将buffer + 10 作为第一个参数传递。 -zch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多