linux - 在 linux 内核空间中将 char[] 转换为 __be16 类型

标签 linux linux-kernel linux-device-driver

我需要在 linux 内核空间中将 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

关于linux - 在 linux 内核空间中将 char[] 转换为 __be16 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346795/

相关文章:

linux - 如何使用 grep 命令搜索多个模式?

c - obj-y += something/in linux kernel Makefile 是什么意思?

c - linux kernel 3.0及以上版本USB转以太网驱动编译

networking - 如何计算非线性 skb/payload 的 TCP/UDP 校验和?

linux - 如何使服务不需要 super 用户密码输入?

python - 在各种操作系统中保存日志时的最佳做法是什么?

linux - RRD微调

linux-kernel - 调试内核挂起

linux-kernel - 关于 Linux 每个 cpu 核心 PID0 空闲任务

linux - Raspbian 是否支持通用时钟框架?