2010-10-12 38 views
1

我可以在Windows中使用命名管道句柄上的選擇和輪詢?如果能夠給出一個例子,那將是很棒的。 (我對Windows編程非常陌生)窗口輪詢或在命名管道上選擇

如果某個進程停止運行,而我在另一端進行輪詢,是否會在另一個進程停止運行的進程中收到任何錯誤消息?

+0

你看過管道上的數據嗎? – rerun 2010-10-12 05:03:24

+0

nopes我不使用偷看 – Arpit 2010-10-12 05:12:03

回答

0

如果您正在對管道執行非阻塞讀取,則關閉管道的另一端(通過進程故障)將導致該讀取返回並出現錯誤。

如果您正在進行阻塞讀取,讀取將失敗,因爲管道已斷開連接。

4

不幸的不是。 Windows通過用於異步通信的重疊I/O和I/O完成端口來促進兩種不同模式。

簡而言之,重疊I/O在I/O操作完成時短暫接收回調。當I/O操作完成時,IOCP正在接收端口上的事件,並允許應用程序同時擴展對多個套接字的處理。

http://en.wikipedia.org/wiki/Iocp

最壞的情況是,你可以通過socketpairselectWSAPoll處理螺栓的螺紋IOCP到命名管道,併產生一個事件。