char 设备捕获多个(int)ioctl 参数

2023-11-29

我必须编写一个linux char设备,它处理每个unlock_ioctl的ioctl(没有BKL)函数。目前,我可以从用户空间 ioctl 命令接收一个参数

__get_user(myint, (int __user *) arg);

我如何接收多个 int 参数(例如此调用)?:

ioctl(fp, SZ_NEW_DEV_FORMAT, 0, 1, 30);

是的,你必须使用结构。对于特定的 ioctl 命令,会有一些预定义的参数。您需要将所有这些参数包装到一个结构对象中,并传入该对象的地址。在内核内部,您需要将给定的 arg 类型转换为结构指针并访问参数。例如。

 struct mesg {
         int size;
         char buf[100];
 };

 struct mesg msg1;

 /*Fill in the structure object here and call ioctl like this*/
 ret = ioctl(fd, SZ_NEW_DEV_FORMAT, &msg1);

在内核中你可以像这样访问它:

      struct mesg *msg;
      copy_from_user((char *)msg, (char *)arg, sizeof(*msg));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

char 设备捕获多个(int)ioctl 参数 的相关文章

随机推荐

  • jsonp 调用中的错误仅来自 firefox-extension

    我的错误的奇怪之处在于它只发生在我在这篇文章底部链接到的 firefox 扩展中 我无法在任何其他设置中重现此错误 我有这个ajax请求 ajax type GET dataType jsonp url url jsonpCallback
  • Kubernetes docker 容器中的前端 Vue.js 应用程序无法连接到后端

    I have built a front end Vue js application running on a docker container under kubernetes environment the backend is al
  • 防止其他人调用您的 JSON Web 服务

    假设我有一些代码可以通过 JSON 服务调用创建 HTML 页面 如何防止其他人复制粘贴源代码 调用服务并获取第一个用户的结果集 如果我将域作为服务的参数或获取其他内容 例如用户名或密码 它们也可以被复制和粘贴并用于另一个域 我没有找到阻止
  • 在 C 中将 & (addressof) 与 const 变量一起使用

    教科书上说 addressof 运算符不适用于不能应用于表达式 常量 或寄存器变量 常量是否仅意味着 A 7 等文字或也用 const 关键字声明的变量 我认为这仅意味着文字 因为以下代码已编译 int main const int i 1
  • 如何使用会员验证密码事件处理程序?

    使用 asp 创建新用户时 有什么方法可以对密码选择进行一些限制吗 网会员 条件喜欢 密码强度 至少 8 个字符 并强制执行字符复杂性 即 不包含用户的帐户名 长度至少为八个字符 包含以下四个类别中三个类别的字符 英文大写字符 A 到 Z
  • 从现在开始下一个月的 10 号?

    我正在尝试查找从今天开始的下一个月的 10 号 因此 如果今天是 5 月 27 日 那么下一个 10 日就是 6 月 10 日 例如 如果今天是 8 月 1 日 那么接下来的 10 日将是 8 月 10 日 我知道我可以使用找到下个月的第一
  • Java - 对非静态字段列表进行静态引用

    我刚刚进行了实验 发现当我运行滚动代码时 它无法编译 我不明白为什么 我的 IDE 说 无法对非静态字段列表进行静态引用 但我不太明白这是什么或为什么 它还适用于什么 即 它只是私有变量和 或方法吗 为什么 public class MyL
  • 加速度计移动的距离

    我想通过移动 iPhone 来移动 iPhone 屏幕上的对象 矩形 圆形等 例如 我沿 X 轴移动 iPhone 物体也沿 X 轴移动 Y Z轴同样如此 我怎样才能做到这一点 我可以得到它的算法吗 谢谢 附 我看了一会儿 似乎可以使用加速
  • 无法使用Python登录亚马逊

    我正在使用 Python 3 编写一个脚本来登录 Amazon 以获取我的 Kindle 亮点 它基于这篇文章 https blog jverkamp com 2015 07 02 scraping kindle highlights 我无
  • iOS8 AVAudioEngine 如何通过多点连接发送麦克风数据?

    我想通过多点连接 iOS 8 发送麦克风音频数据 并通过接收方的扬声器播放它 我还设置了 AVAudioEngine 并且可以从 上方 扬声器输出听到麦克风数据 但我不知道如何通过网络发送 AVAudioPCMBuffer 这是我的代码片段
  • 全局变量的值在 ValueEventListener 中初始化后会重置

    我有一个名为 bg 的全局变量 它在 firebase 数据库引用 myRef 的 ValueEventListener 内初始化 但是 如果我尝试在 valueeventlistener 块之外使用变量的值 则该变量为空 就好像被重置了一
  • 使用 Big Query 将 firebase event_params 键值数据显示到单行中

    我正在尝试对 Firebase 存储的事件执行 Google BigQuery 我已经执行了以下查询 SELECT FROM myTable LIMIT 6 其结果如下 Row date name event params key even
  • 如何查找已安装的 .NET 版本?

    如何查明安装的 NET 版本 我正在寻找像这样简单的东西java version我可以在命令提示符下输入它 它会告诉我当前安装的版本 我最好补充一点 可能未安装 Visual Studio 这通常是我想了解的有关客户端计算机的信息 有一种更
  • JavaScript - 对 SELECT 选项进行排序

    我使用 PHP 扫描目录并列出所有 xml 文件 每个 XML 文件都包含 名称 元素和 日期 元素 每个 XML 文件的 name 元素作为选项列在选择列表中 这工作得很好 但是 每个 XML 文件中的 日期 元素都不同 并且包含如下日期
  • sclite (SCTK)、C++ 模板参数 Filter::Filter* 无效。西格文

    Problem 我目前正在尝试安装 NISTsclite 它是 SCTK 2 4 0 的一部分 github or 新版本 我正在尝试安装Cygwin in bash 安装是使用完成的make 我能够解决一个问题file format no
  • empty() 不是一个有效的回调?

    我正在尝试在 php ini 的数组映射中使用empty 我收到错误消息 表明这不是有效的回调 cat test php
  • Facebook Graph API - 使用 JavaScript 上传照片

    是否可以使用 JavaScript 使用 Facebook Graph API 上传文件 我觉得我已经很接近了 我正在使用以下 JavaScript var params params message PicRolled params so
  • 连接 ECONNREFUSED 127.0.0.1:27017'

    我有那个代码 var express require express stylus require stylus logger require morgan bodyParser require body parser mongoose r
  • 允许用户仅在 firebase 上修改自己的数据

    我试图阻止黑客修改或查看我的 Firebase 数据库上的数据 我的数据库中的用户包含 身份验证 选项卡中所有用户的用户 ID 我可以让数据库只让登录用户查看数据吗 这是我的数据库结构 Firebase数据库结构 我想允许用户在 用户 中修
  • char 设备捕获多个(int)ioctl 参数

    我必须编写一个linux char设备 它处理每个unlock ioctl的ioctl 没有BKL 函数 目前 我可以从用户空间 ioctl 命令接收一个参数 get user myint int user arg 我如何接收多个 int