g_hongjiang 发表于 2009-1-6 11:13:07

ACE_Message_Block长度的问题?

ACE_Message_Block *mb = NULL;
ACE_NEW_RETURN(mb, ACE_Message_Block(n), -1);
ACE_OS::sprintf(mb->wr_ptr(),"%s",buffer);
      ACE_DEBUG ((LM_DEBUG,
                  ACE_TEXT ("(%t) Request_Handler:%s)\n"),
                  mb->rd_ptr()));
程序段的意思是把buffer放到mb中,如果buffer的内容"hello"但是输出的时候mb中除了"hello"外,还有一堆乱码,为什么除了"hello"外,还有其他别的内容

winston 发表于 2009-1-6 16:16:21

你自己没清空缓冲区,也没加\0结束符,当然如此!

dwh0403 发表于 2009-1-9 11:29:59

ACE_OS::sprintf自己会自动加上‘\0’, 原因就出在你传入的buffer上面,所以先检查你传入的buffer内容赋值。
页: [1]
查看完整版本: ACE_Message_Block长度的问题?