использование семафоров из нескольких файлов C-Windows - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу использовать семафоры для проблемы «потребитель-производитель» с использованием C в Windows.в файле (afile.c) я глобально объявил дескриптор семафора:

HANDLE empty;

в том же файле (afile.c), внутри одной из функций я создал семафор:

empty = CreateSemaphore(NULL,size, size, NULL);

и использовал его в некоторых функциях.после использования я выпустил его с помощью:

ReleaseSemaphore(empty,1,NULL);

Я хочу использовать этот семафор в другом файле (bfile.c), поэтому я включил (afile.h) в (bfile.c)

#include "afile.h"

bfile.c не может распознать этот семафор.

любые предложения по решению этой проблемы или помощь в понимании того, как использовать семафоры из нескольких файлов?

1 Ответ

0 голосов
/ 10 декабря 2018

В afile.c у вас должно быть:

HANDLE empty = INVALID_HANDLE_VALUE;

В afile.h у вас должно быть:

extern HANDLE empty;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...