linux中IOCTL系统调用的原型是
int ioctl(struct inode *, struct file *, unsigned int, unsigned long);所有其他文件操作,如read()、write()、llseek()、mmap()等。只有struct file *作为参数。但是,为什么IOCTL调用需要传递struct inode *。它有什么特别的用途吗?
发布于 2013-12-15 23:26:44
您正在讨论的内核版本,现在ioctl没有使用inode指针作为参数。以前有,但我认为从2.6.36内核开始,它已经被移除了。
发布于 2013-12-16 05:24:57
至少根据手册页上的说明,ioctl的原型是int ioctl(int d, int request, ...);。...位很重要-可变参数,这意味着剩余的参数依赖于第一个参数,就像printf一样。对struct inode *的任何使用都源于您正在发出的特定ioctl请求。
https://stackoverflow.com/questions/20595373
复制相似问题