如何使用 ioctl return 负整数作为有效结果?
How to return negative integer as valid result using ioctl?
我需要将整数传递给内核模块,在那里计算 sin 和 return 结果。
首先内核内置了sinfixp_t fixp_sin(unsigned int degrees)
函数,即returns定点数(可以为负数)
所以,我的问题是:如果我使用 ioctl 将整数传递给内核模块,计算 sin,我如何才能 return 返回负结果?
ioctl 将负 return 值检测为错误。
I need to pass integer to kernel module, calculate sin there and
return result.
可以传递结构而不是将整数值传递给ioctl()
。此结构可以具有输入和输出数据字段。没有必要弄乱 ioctl()
return 值。
将结构传递给字符驱动程序的 ioctl() 示例
https://github.com/jeyaramvrp/kernel-module-programming/tree/master/sample-char-dir
ioctl()
绝不意味着 return 浮点值。但是你可以传递一个指向你的用户空间内存的指针,它可以被填充:
float f = 1.0;
ioctl(fd, SIOCCALCSIN, &f);
f 在这里是一个 inout-parameter,取你计算正弦的值并被结果覆盖。
我需要将整数传递给内核模块,在那里计算 sin 和 return 结果。
首先内核内置了sinfixp_t fixp_sin(unsigned int degrees)
函数,即returns定点数(可以为负数)
所以,我的问题是:如果我使用 ioctl 将整数传递给内核模块,计算 sin,我如何才能 return 返回负结果?
ioctl 将负 return 值检测为错误。
I need to pass integer to kernel module, calculate sin there and return result.
可以传递结构而不是将整数值传递给ioctl()
。此结构可以具有输入和输出数据字段。没有必要弄乱 ioctl()
return 值。
将结构传递给字符驱动程序的 ioctl() 示例
https://github.com/jeyaramvrp/kernel-module-programming/tree/master/sample-char-dir
ioctl()
绝不意味着 return 浮点值。但是你可以传递一个指向你的用户空间内存的指针,它可以被填充:
float f = 1.0;
ioctl(fd, SIOCCALCSIN, &f);
f 在这里是一个 inout-parameter,取你计算正弦的值并被结果覆盖。