我想在Windows中使用C来解决“消费者生产者”问题的信号灯。 在文件(afile.c)中,我全局声明了信号灯的句柄:
HANDLE empty;
在其中一个函数中的同一文件(afile.c)中,我创建了信号灯:
empty = CreateSemaphore(NULL,size, size, NULL);
并在某些功能中使用它。使用完后,我使用以下方法发布它:
ReleaseSemaphore(empty,1,NULL);
我想在另一个文件(bfile.c)中使用此信号灯,所以我在(bfile.c)中包含了(afile.h)
#include "afile.h"
bfile.c无法识别此信号量。
有关解决此问题的任何建议,或者帮助您弄不清楚如何利用多个文件中的信号灯?
答案 0 :(得分:0)
在afile.c中,您应该具有:
HANDLE empty = INVALID_HANDLE_VALUE;
在afile.h中,您应该具有:
extern HANDLE empty;