将 char[] 转换为 __be16 输入 linux 内核 space

convert char[] to __be16 type in linux kernel space

我需要在 linux 内核 space 中将 char[] 转换为 __be16 类型。

我可以使用 kstrtoint 将 char[] 转换为 int。同样的功能也适用于 __be16,但有警告。同样,任何预定义函数也可用于 __be16?

示例:

char x[120] = "02" 到 __be16 xx

__be16其实就是一个network short int,所以可以用htons函数:

char* str = "123"; // input
int val;
__be16 nval; // output

kstrtoint(str, 10, &val);
nval = htons(val);

此外,可以使用 cpu_to_be16 代替 htons