|
以前没怎么用,这两天心血来潮试了一下,发现卷一的示例貌似有问题
ACE_Message_Block *head = new ACE_Message_Block(BUFSIZ);
ACE_Message_Block *mblk = head;
for(; ; )
{
ssize_t nbytes = ACE_OS::read_n(ACE_STDIN, mblk->wr_ptr(), mblk->size());
if(nbytes <= 0)
break;
mblk->wr_ptr(nbytes);
mblk->cont(new ACE_Message_Block(BUFSIZ));
mblk = mblk->cont();
}
for(mblk = head; mblk != 0; mblk = mblk->cont())
ACE_OS::write_n(ACE_STDOUT, mblk->rd_ptr(), mblk->length());
head->release();
除了头文件包含错误之外,我输出BUFSIZ的大小时,是512,而Block输入完成后没有输出
于是我把BUFSIZ 自已DEFINE为10,发现输入大于10个字符时会有输出,小于时不会有输出
而且Ctrl+Z之前一行的输入输出不一致,请问这是为什么? |
|