我试图编写一个程序,将信息从ubtu14.04上的内核空间传递到用户空间。我声明astruct
如下:
typedef struct
{
long pid;
char TTY[64];
unsigned long long time;
char COMM[64]
} myTasks;
在main中,我创建一个
myTasks
结构数组,如:struct myTasks taskInfo[2500];
//do stuff
syscall(__NR_my_syscall2,numTasks,sizeof(taskInfo),taskInfo); // use it here
但是,当我这样做的时候,我在这句话中得到了一个错误:
struct myTasks taskInfo[2500]错误:数组类型的元素不完整
我做错什么了?我想创建一个
myTasks
结构数组,可以作为缓冲区传递给系统调用。。。但我不知道我做错了什么。我是新来的,所以我非常感谢您的帮助。 最佳答案
您将匿名结构编辑为typedef
。要声明数组,请使用myTasks
。
C认为您正在声明一个新的名为structmyTasks taskInfo[2500]
的结构,它是不完整的,因为您没有定义该结构。但是,struct myTasks
是已经定义的结构的别名。