我试图通过在Linux内核中创建自己的信号量来解决生产者消费者问题。我通过创建一个struct来在sys.c中做到这一点:
struct my_sem
{
int value;
struct task_struct *pro[25];
};
现在,当我进入我的程序并尝试创建此信号量时:
my_sem mutex1;
我收到一条错误,上面写着" my_sem未声明"
我包含unistd.h并使用-i选项在gcc中编译。我觉得还有其他的东西我不知道。
谢谢。
答案 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;
作品。