// 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;
}
//
#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;
}