相关疑难解决方法(0)

dot(.)在struct初始化程序中的含义是什么?

static struct fuse_oprations hello_oper = {
  .getattr = hello_getattr,
  .readdir = hello_readdir,
  .open    = hello_open,
  .read    = hello_read,
};
Run Code Online (Sandbox Code Playgroud)

我不太了解这个C语法.我甚至无法搜索,因为我不知道语法的名称.那是什么?

c c99 designated-initializer

107
推荐指数
3
解决办法
3万
查看次数

如果cmd = 2,则不调用ioctl

我正在开发一个使用unlocked_ioctl的内核模块.我用内核版本2.6.24-23-generic测试了它,它运行得很好.现在我尝试使用内核版本3.3.1-1-ARCH并且发生了一些奇怪的事情:当请求值(cmd)为2时,不会执行ioctl函数.它返回0,但函数未执行.为了检查它是否未执行,我执行了以下操作:

static long midriver_ioctl(struct file *file,
    unsigned int cmd, unsigned long arg) {

printk("Called with cmd = %d\n", cmd);
Run Code Online (Sandbox Code Playgroud)

我写了一个测试程序,从0到4096调用此设备的ioctl,我可以在dmesg中看到所有这些值的消息"用cmd = n调用",除了"2",唯一没有显示的值.

关于我做错了什么的线索?

先感谢您,

c ioctl module linux-kernel

11
推荐指数
1
解决办法
3090
查看次数

标签 统计

c ×2

c99 ×1

designated-initializer ×1

ioctl ×1

linux-kernel ×1

module ×1