【发布时间】:2011-02-25 09:56:22
【问题描述】:
我一直在研究使用流的东西,但我发现自己不清楚一些流概念(您也可以查看我在About redirected stdout in System.Diagnostics.Process 发布的另一个问题)。
1.你如何表明你已经写完一个流,写一个像EOF这样的东西?
2.按照上一个问题,如果我已将 EOF(或类似的东西)写入流但没有关闭流,那么我想向同一流写入其他内容,我可以开始写吗无需更多设置?
3.如果一个程序试图读取一个没有人向其写入任何内容的流(如标准输入),读取程序将被阻塞,最后一些数据到达,程序将读取直到写入完成,这通过返回 0 个读取的字节数而不是被阻塞来表示,现在如果该过程向同一个流发出另一个读取,它仍然会得到一个 0 计数并立即返回,而我期望它会被阻塞,因为现在没有人在写入流。那么,当流打开但没有人写入它以及有人完成写入会话时,流是否保持不同的状态?
如果有任何特定于平台的东西,我正在使用 Windows .net 框架。
非常感谢!
【问题讨论】: