我只是想知道在C中是否可以查看輸入緩衝區或執行類似的技巧來知道對fgets的調用是否會在稍後時間阻塞。 Java允許通過調用BufferedReader.ready()做類似的東西,這樣我可以實現控制檯輸入這樣的事情:檢查fgets是否會阻塞
while (on && in.ready()) {
line = in.readLine();
/* do something with line */
if (!in.ready())
Thread.sleep(100);
}
這允許外部線程正常關閉通過設置爲false,輸入迴路;我想在C中執行一個類似的實現,而不使用非可移植的技巧,我已經知道我可以通過使用信號或者(更好的是,儘管需要照顧緩衝)來實現unix下的「超時fgets」它在recv/select之上,但我更喜歡一些可以在windows上工作的東西。
TIA
在windows上選擇作品:http://msdn.microsoft.com/en-us/library/ms740141%28VS.85%29.aspx – nc3b 2010-04-29 09:09:29
@ nc3b:Windows'select'函數只適用於套接字。 – 2010-04-29 09:14:34
@Marcelo Cantos:哦,對不起,不知道:「> – nc3b 2010-04-29 09:17:00