我使用ACE_OS::read_n()
從stdin (ACE_STDIN)
讀取一些數據。我的代碼示例:ACE_OS :: read_n()返回0即使收到一些數據
ACE_Message_Block *head = new ACE_Message_Block(BUFSIZ);
size_t bytes_trans = 0;
ssize_t nbytes = ACE_OS::read_n(
ACE_STDIN,
mblk->wr_ptr(),
mblk->size(),
&bytes_trans);
如果我開始我的程序與命令./a.out <<< "hello"
,它的數據後發現EOF,並返回0。因此,我可以檢測接收的數據只有在檢查bytes_trans
變量。
是否正確ACE_OS::read_n()
行爲?
謝謝。即如果'read_n()'返回0,我們總是需要檢查bytes_transferred來檢測接收到的任何數據? – theDilletante
@theDilletante請檢查我的最新編輯,我添加了可能對您有幫助的實施細節。 – jsantander
謝謝!我現在知道了! – theDilletante