使用来自多个文件的信号量C-Windows

时间:2018-12-10 13:38:31

标签: c windows semaphore

我想在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无法识别此信号量。

有关解决此问题的任何建议,或者帮助您弄不清楚如何利用多个文件中的信号灯?

1 个答案:

答案 0 :(得分:0)

在afile.c中,您应该具有:

HANDLE empty = INVALID_HANDLE_VALUE;

在afile.h中,您应该具有:

extern HANDLE empty;