c - 使用来自多个文件的信号量 C-Windows
问题描述
我想在 Windows 中使用 C 将信号量用于“消费者-生产者”问题。在文件(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 无法识别此信号量。
有什么解决这个问题的建议,或者,帮助理解如何使用来自多个文件的信号量?
解决方案
在 afile.c 你应该有:
HANDLE empty = INVALID_HANDLE_VALUE;
在 afile.h 你应该有:
extern HANDLE empty;
推荐阅读
- grafana - 针对 AWS Cloudwatch 的 Grafana 注释查询
- r - R中的区域虚拟变量
- xslt - 带有子字符串的应用模板
- azure-data-factory - 我们如何定义一个可重用的错误处理程序活动 Web 活动以在 ADF 管道中的任何位置发生故障时发送电子邮件?
- spring - spring 基于构造函数的依赖注入,如何理解“它可以让你将应用程序组件实现为不可变对象”
- sql - 在 SQL 中查询另一列中的 JSON 对象时如何使用 where 子句引用一列
- swift - 有什么方法可以将键=值格式的字符串快速转换为字典?
- angular - 如何设置输入延迟并防止在 Angular 中对空输入请求 api?
- mysql - MYSQL删除重复数据需要10多个小时
- python - Using custom-build C-API Python 3.3.5 module