我正在尝试编写一个程序,将信息从内核空间传递到ububtu 14.04上的用户空间。我声明了struct
如下:
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
结构数组,我可以将其作为缓冲区传递给系统调用...但我无法弄清楚我做错了什么。我是C
的新手,所以非常感谢任何帮助。
答案 0 :(得分:2)
您typedef
将匿名结构编辑为myTasks
。要声明您的数组,请使用myTasks taskInfo[2500]
。
C认为您正在声明一个名为结构struct myTasks
的新,但由于您没有定义结构,因此它不完整。但是,myTasks
是您已定义的结构的别名。
答案 1 :(得分:2)
myTasks taskInfo[2500];
是 type-alias ,而不是结构名称。正确使用它就是例如。
trueCondition()