c语言实现linux上类似windows的event事件

头文件:

#include <stdbool.h>

// 句柄
typedef void* EventHandle;

// 创建实例
EventHandle stCreateEvent(bool initState, bool manualReset);

// 释放实例
void stReleaseEvent(EventHandle handle);

// 等待事件。有信号返回true,否则false。无限等待时 waitTime_ms 置 0xffffffff。
bool stWaitEvent(EventHandle handle, unsigned int waitTime_ms);

// 重置事件为无信号
void stResetEvent(EventHandle handle);

// 事件设为有信号
void stSetEvent(EventHandle handle);

实现: 

#include "cEvent.h" // 这是头文件名字
#include <pthread.h>
#include <sys/time.h>
#include <errno.h>
#include <stdlib.h>
#include <assert.h>
#include <unistd.h>

typedef struct {
	bool m_state; // true : 有信号; false : 无信号
	bool m_manualReset;
	pthread_mutex_t m_mutex;
	pthread_cond_t m_cond;
} st_Event_Info;


EventHandle stCreateEvent(bool initState, bool manualReset)
{
	st_Event_Info* p = (st_Event_Info*)malloc(sizeof(st_Event_Info));
	if (p) {
		p->
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值