sem

// test.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include "Windows.h"


#define FIFO_LEN_MAX 1000
typedef struct _FIFO
{   
    HANDLE   handler_mutex; //二值信号量,用于对资源进行独占式访问
HANDLE   handler_sem;   //信号量,用于计数FIFO里的消息数量            
    unsigned  int  write_point;   //写指针          
    unsigned  int  read_point;    //读指针         
    void *         msg_buf[FIFO_LEN_MAX]; //消息缓存区  
}FIFO;


FIFO server_fifo;


//创建FIFO
int fifo_init(FIFO *p_fifo)
{
/* 创建FIFO控制信号量 */
p_fifo->handler_mutex = CreateMutex(NULL,FALSE,NULL); 
if(NULL==p_fifo->handler_mutex)
{
return -1;
}
p_fifo->handler_sem = CreateSemaphore(NULL,0,FIFO_LEN_MAX,NULL);             
if(NULL==p_fifo->handler_sem)
{
return -1;
}


/* 清空消息缓存区 */
for(p_fifo->read_point=0;p_fifo->read_point<FIFO_LEN_MAX;p_fifo->read_point++)
{
p_fifo->msg_buf[p_fifo->read_point] = NULL;
}


/* 复位读写指针 */
p_fifo->write_point = 0;            
    p_fifo->read_point  = 0;


return 0;
}


//往FIFO里放入消息
int fifo_write(void *p_msg)
{
return 0;
}


//从FIFO里读取一则消息
int fifo_read(void *p_msg)
{
return 0;
}


int _tmain(int argc, _TCHAR* argv[])
{
HANDLE m_hmtxQ,m_hsemNumElements;


m_hmtxQ = CreateMutex(NULL,FALSE,NULL);
m_hsemNumElements = CreateSemaphore(NULL,0,1000,NULL);


while(1)
{
Sleep(100);

}


return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值