如何在Linux内核中把char[]转换成int?[英] How convert char[] to int in linux kernel?

本文是小编为大家收集整理的关于如何在Linux内核中把char[]转换成int?的处理方法,想解了如何在Linux内核中把char[]转换成int?的问题怎么解决?如何在Linux内核中把char[]转换成int?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

如何转换的char []在linux内核为int

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

  INT procfile_write(结构文件*文件,为const char *缓冲区,无符号长计数,
       void *的数据)
{   焦炭procfs_buffer [PROCFS_MAX_SIZE]    / *获取缓冲区大小* /
   无符号长procfs_buffer_size =计数;
   如果(procfs_buffer_size> PROCFS_MAX_SIZE){
       procfs_buffer_size = PROCFS_MAX_SIZE;
   }   / *写数据到缓冲器* /
   如果(调用copy_from_user(procfs_buffer,缓冲器,procfs_buffer_size)){
       返回-EFAULT;
   }   INT = buffer2int(procfs_buffer,procfs_buffer_size);   返回procfs_buffer_size;
}

解决方案

请参阅 kstrtol的各种各样的化身()在<一个href=\"http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/kernel.h\">#include &LT;在include / linux / kernel.h方式&gt; 在友好的Linux源代码树

您需要哪一个取决于是否 *缓冲区是一个用户或内核地址,您的需要是如何严格的错误处理/检查的缓冲区内容(之类的东西,是 123qx 无效或应交回 123 ?).

本文地址:https://www.itbaoku.cn/post/358979.html