3
我正在研究一个需要非常密切地(非缓冲)管道二进制流的小程序。它必须依赖select()
多路复用,并且决不允许“保留现有输入,除非有更多输入已经到达,因为它现在还不值得”。C stdio无缓冲复用
这是可能的使用系统调用,但是,然后再次,我想使用stdio方便(也涉及字符串格式)。
- 只要我使用无缓冲的stdio,我可以安全地在流的底层文件描述符上使用
select()
吗?如果不是,我怎样才能确定一个文件流,不会阻止一组? - 除了char-by-char函数(
getchar()
和朋友)之外,是否有任何调用将所有输入从libc传输到应用程序?
+1这似乎是一个非常好的答案(并感谢dprintf,我知道它必须存在!)。任何人都可以击败? – 2012-02-13 04:55:46
如果你需要它们的地方都可以使用它,将很难击败'dprintf()'等。 – 2012-02-13 05:01:44