假设一个消息来自外部源生成器,间隔为1秒。我有两个处理函数,只要这些消息基于消息的字段而被调用
我有一个创建名为WriteSM的线程例程的函数。
考虑具有2个字段的2字节的消息 1)数据 2Type
我们为每个字段提供了两个处理函数,如下所示
void HandlerforData(char data)
void handlerforType(char Type)
/*This is the sample piece of code*/
char buffer[4];/*Global buffer*/
int index = 0;
static int flag = 0;/*A global static flag*/
void HandlerforData(char data);
void WriteSM(void);
void handlerforType(char Type);
/*Two handler functions*/
void HandlerforData(char data)
{
buffer[index] = data;
}
void handlerforType(char Type)
{
buffer[index+1] = type;
buffer[index+3] = '\0';/*Null terminated the string*/
index = 0;
flag = 1
}
void WriteSM(void)
{
while(1)
{
if(flag ==1)
{
/*Opens a shared memory and writes to the shared memory*/
flag =0/*Reset the flag*/
}
}
}
假设我的消息以1秒的间隔出现,我将如何确保缓冲区不会被下一帧消息覆盖?
如果您有任何疑虑,请回复我
谢谢和问候 麦迪
答案 0 :(得分:0)
我猜它是一个多线程的应用程序,你下次肯定应该提供更多的信息,但是尝试与关键部分相关的谷歌相互排除。