当前位置: 首页 > 面试题库 >

如何在Linux内核中将char []字符串转换为int?

壤驷瑾瑜
2023-03-14
问题内容

如何在Linux内核中将char []转换为int

验证输入的文本实际上是一个int?

int procfile_write(struct file *file, const char *buffer, unsigned long count,
       void *data)
{

   char procfs_buffer[PROCFS_MAX_SIZE];

    /* get buffer size */
   unsigned long procfs_buffer_size = count;
   if (procfs_buffer_size > PROCFS_MAX_SIZE ) {
       procfs_buffer_size = PROCFS_MAX_SIZE;
   }

   /* write data to the buffer */
   if ( copy_from_user(procfs_buffer, buffer, procfs_buffer_size) ) {
       return -EFAULT;
   }

   int = buffer2int(procfs_buffer, procfs_buffer_size);

   return procfs_buffer_size;
}

问题答案:

在友好的linux源代码树中查看kstrtol()in 的各种形式#include <include/linux/kernel.h>

您需要哪种取决于*buffer用户是用户还是内核地址,以及您对错误处理/检查缓冲区内容的要求有多严格(诸如,123qx无效或应该返回123?)。



 类似资料:
  • 问题内容: 是否存在将“ \ uFFFF”之类的字符串转换为字符的标准方法,即六个字符的字符串包含一个Unicode字符的表示形式? 问题答案: 该值直接解释为所需的字符串,整个序列实现为单个字符。 换句话说,如果要对值进行硬编码: 请注意,这似乎不是适当的Unicode字符,但请尝试使用例如。 在此处阅读有关Unicode转义的信息

  • 问题内容: 我正在寻找一种将包含字符转义序列的字符串转换为表示的字符的方法。 因此,例如,我想将字符串(具有两个字符,一个反斜杠和一个双引号)解析为char 。因此,将一个字符数组转换为一个字符。 因此,可能会执行以下操作,反之亦然: 我不敢相信java.lang或其他任何东西都不能为此提供良好的代码(也许是本地代码),因为我觉得上面的代码可能不完整,并且无法解析每个有问题的(可逃避的?)字符,因

  • 问题内容: 目前,我目前正在处理一些代码,其中涉及类型为var的 它具有价值,我可以像这样轻松访问: 很好,但是我希望能够使用该 函数,由于它需要type 而不是type ,因此通常会出错。 可以使用该功能的最合适的解决方案是什么,我想也许是某种转换方法? 问题答案: 您需要构造一个新的type数组才能使用: 请参阅相关的Golang常见问题解答条目:我可以将[] T转换为[]接口{}吗?

  • 问题内容: 我有一个char数组: 我目前的解决方案是 但是肯定有更好的方法吗? 问题答案: 不,该解决方案是绝对正确的,而且非常少。 但是请注意,这是一种非常不寻常的情况:因为是在Java中专门处理的,所以实际上甚至是一个。因此,在普通代码中不需要将拆分为单个s并将其重新连接。 将此与C / C 进行比较,在C / C 中,你的捆绑在一侧和另一侧以零字节结尾,并且由于传统方法而在它们之间进行了许

  • 问题内容: 从字符串转换为字符串的最佳方法(最快的性能)是什么? 对于我们可以做,但它给出了一个错误: 我从那产生的from 方法而不是 这个解决方案最快吗? 编辑 我的坏东西,而不是..,所以我可以直接做。 问题答案: 事先注意: 询问者首先指出输入分片就是答案。后来他意识到输入是可以直接转换为的,因为它是别名(并且语言规范支持=> 转换)。 您无法转换不同类型的切片,必须手动进行。 问题是我们

  • 问题内容: 我正在使用docopt来解析命令行参数。此方法有效,并生成地图,例如 现在,我想将and和值连接到一个字符串,两个值之间用冒号表示。基本上,诸如: 不幸的是,这不起作用,因为我收到了错误消息: 无效的操作:arguments [“”] +“:”(类型不匹配的接口{}和字符串) 因此,显然我需要将从映射中获得的值(就是,所以可以是任何东西)转换为字符串。现在我的问题是,我该怎么做? 问题