我一直在研究利用流的东西,并且发现自己对某些流概念并不清楚(您也可以查看我在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