我一直在研究利用流的東西,並且發現自己對某些流概念並不清楚(您也可以查看我在About redirected stdout in System.Diagnostics.Process上發佈的另一個問題)。關於流的一些問題
1.你如何表示你已經寫完一個流,寫了類似EOF的東西?
2.關注上一個問題,如果我已經寫了一個EOF(或類似的東西)到一個流但沒有關閉流,那麼我想寫一些其他的東西到同一個流,我可以直接啓動寫信給它,不再需要設置?
3.如果程序試圖讀取沒有人寫入任何內容的流(比如stdin),讀取過程將被阻塞,最後有一些數據到達,程序會一直讀取直到寫入完成,這是通過讀取而不是被阻止的0計數字節的返回來指示的,現在如果該過程向同一個流發出另一次讀取,它仍將得到0計數並且在我期望它會被阻塞時立即返回因爲現在沒有人正在寫信給該流。那麼當流打開時,流是否保持不同的狀態,但是還沒有人寫入它,以及有人完成了寫入會話?
我正在使用Windows .net框架,如果有任何事情平臺具體。
非常感謝!
stdin stdout流的工作方式與NetWorkStream的工作方式相同嗎? – sforester 2010-05-29 10:52:58
@sforester,stdin/stdout是非隨機訪問流,比如NetworkStream,所以沒有預測流數據何時結束,當流關閉時流讀取將結束。 – 2010-05-29 12:52:53