C-对不完整类型(struct input_dev)无效地使用sizeof

C-对不完整类型(struct input_dev)无效地使用sizeof,c,linux,input,C,Linux,Input,我正在编写一个与linux输入子系统交互的程序。以下是我试图编译的主要文件: #include <linux/input.h> #include <stdio.h> void idevcreate() { struct input_dev idev; memset(&idev, 0, sizeof(struct input_dev)); } 我猜程序无法找到input\u dev的定义。这里有什么我遗漏的吗?我认为您需要简单地找到系统对struct i

我正在编写一个与linux输入子系统交互的程序。以下是我试图编译的主要文件:

#include <linux/input.h>
#include <stdio.h>

void idevcreate() {
  struct input_dev idev;
  memset(&idev, 0, sizeof(struct input_dev));
}

我猜程序无法找到
input\u dev
的定义。这里有什么我遗漏的吗?

我认为您需要简单地找到系统对
struct input\u dev
的定义,并包含相关的标题。我会这样做:

grep -r "struct input_dev" /usr/include

struct-input\u-dev
是在哪里定义的?我不知道这是否真的是一个答案,但不需要显式调用memset,只需执行
struct-input\u-dev-idev={}
并以更少的输入获得相同的效果。@DanielFischer:据我所知,它应该在,但OP应该检查正在使用的特定机器。@JohnZwinck我没有提到它,这就是为什么我问的原因。你在混合内核级和用户级头。这是行不通的。你是在写驱动程序还是用户空间程序?什么也没找到。我想它确实被移除了。
grep -r "struct input_dev" /usr/include