在Linux Kernel中创建了我自己的数据类型。现在我该如何使用它?

时间:2015-10-18 15:58:54

标签: c

我试图通过在Linux内核中创建自己的信号量来解决生产者消费者问题。我通过创建一个struct来在sys.c中做到这一点:

struct my_sem
{
    int value;
    struct task_struct *pro[25];
};

现在,当我进入我的程序并尝试创建此信号量时:

my_sem mutex1;

我收到一条错误,上面写着" my_sem未声明"

我包含unistd.h并使用-i选项在gcc中编译。我觉得还有其他的东西我不知道。

谢谢。

1 个答案:

答案 0 :(得分:0)

当你制作自己的结构并想要使用它时,你必须说:

struct my_sem mutex1;

为了让它看起来更漂亮,请使用typedef:

struct my_sem
{
    int value;
    struct task_struct *pro[25];
};
typedef struct my_sem my_sem;

每次要创建my_sem类型的新变量时,第一个struct my_sem就是你要说的。第二个my_sem是您可以用作简化的内容。每当你说my_sem时,编译器都会使用struct my_sem

现在你的代码

my_sem mutex1;

作品。