我试图编写一个程序,将信息从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是已经定义的结构的别名。

08-28 02:29