我正在寫一個簡短的程序,輪詢命名管道的緩衝區。爲了測試它,我將登錄到「nobody」並回顯到管道中。當它掛起時,我從其他用戶登錄並運行讀取緩衝區的程序。運行時,程序不會返回任何內容,而另一個用戶將從系統中註銷。這裏的讀取功能:命名管道終止會話
void ReadOut(char * buf)
{
ZERO_MEM(buffer, BUF_SIZE);
int pipe = open(buf, O_RDONLY | O_NONBLOCK);
if(pipe < 0)
{
printf("Error %d has occured.\n" , pipe);
return;
}
while(read(pipe, buffer, 2) > 0) printf("%s \n" , buffer);
close(pipe);
return;
}
'寫'功能,類似於此,工作得很好。當我知道O_NONBLOCK – tay10r 2013-03-17 04:48:42