gpt4 book ai didi

c - 为什么 ioctl 调用的原型(prototype)使用 unsigned long 作为第三个参数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:34 26 4
gpt4 key购买 nike

下面是一个ioctl调用的原型(prototype)

long ioctl(struct file *f, unsigned int cmd, unsigned long arg);

为什么 ioctl 的第三个参数默认是 unsigned long?有时我们传递一个指向它的指针。但它使用的是 unsigned long。

最佳答案

在内核中,unsigned long 通常用作指针的替代品,因为指针在每个体系结构上始终具有此大小。 Ioctls 也可以将整数作为参数,所以这在这里很有意义。这必须为每个 ioctl 定义。

请注意,ioctls 已被弃用,unlocked_ioctls 必须在当前内核版本中使用:http://lwn.net/Articles/119652/

关于c - 为什么 ioctl 调用的原型(prototype)使用 unsigned long 作为第三个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19905424/

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