关于消息被覆盖的疑问?

时间:2011-10-25 12:38:10

标签: c message

假设一个消息来自外部源生成器,间隔为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秒的间隔出现,我将如何确保缓冲区不会被下一帧消息覆盖?

如果您有任何疑虑,请回复我

谢谢和问候 麦迪

1 个答案:

答案 0 :(得分:0)

我猜它是一个多线程的应用程序,你下次肯定应该提供更多的信息,但是尝试与关键部分相关的谷歌相互排除。