gpt4 book ai didi

c - 如何从 Linux 内核空间中的字符串中提取整数?

转载 作者:行者123 更新时间:2023-12-02 01:24:28 24 4
gpt4 key购买 nike

我想从字符串中提取整数,例如我想从字符串“/dev/nkdev/group0/mdev1”中提取 0 作为组标识符和 1 作为 mdev 标识符。

上面的字符串“/dev/nkdev/group”在输入中是一个固定的模式,group id可以是0-9之间的任意整数,“mdev”也不固定,可以是任意字符序列后跟一个整数。

我使用了下面的代码

#define NO_INTEGER "%0[^0-9]"

res = sscanf(dev_name_p, NO_INTEGER "%u" NO_INTEGER "%u",
&group_id, &mdev_id);

但我发现内核不支持跳过序列。任何人都可以告诉,是否有任何内核库函数可以完成这项工作?

最佳答案

kstrtoint() — 将字符串转换为 int。

kstrtol() — 将字符串转换为长整型。

您检查 linux 内核源代码树 /include/linux/kernel.h 中的声明。您必须包含此头文件 #include< linux/kernel.h> 在使用此功能之前。

 Example :

const char *buf = "123";
long value;
if(kstrtoint(buf, 10, &value) != 0)
return -1;
printk("%d",value);

关于c - 如何从 Linux 内核空间中的字符串中提取整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37943299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com