基本上我试图检查程序被调用时是否有任何标准输入,所以如果我有另一个文件输出写入标准输出然后 ./output | ./program
应该工作并且./program
应该退出并显示错误c - 检查什么时候什么都没有管道到标准输入
4
A
回答
6
在POSIX中,您可以使用isatty
。
2
isatty
检查一个tty,而不是一个管道。改用fstat(STDIN_FILENO, &sb)
并检查S_ISFIFO(sb.st_mode)
。
要检查是否有任何可以读取的“in”stdin,请使用例如poll(2)
,事件掩码为POLLIN
。
相关问题
- 1. 什么时候到标准和文本检查点在qtp
- 2. 当管道写入标准输出时,为什么write()管道退出程序?
- 3. 程序什么时候什么都没有提示
- 4. 为什么login命令不接受管道标准输入?
- 5. 什么时候应该使用标准的html标签/输入,什么时候应该使用asp.net控件?
- 6. 什么时候使用资产管道
- 7. 在用户输入没有收到的时候做点什么
- 8. VBA发现,如何捕获什么时候什么都没有找到
- 9. C:重定向标准输入,标准输出到管道
- 10. 目标C什么时候使用alloc和什么时候不到
- 11. 什么时候加入名字,什么时候不加入?
- 12. 什么都没有?
- 13. 为什么没有维基管道?
- 14. 什么时候检查碰撞
- 15. 当我在python中输入时,什么都没有出现
- 16. 为什么Me.components什么都没有?
- 17. 什么时候注入构造函数,什么时候是CDI
- 18. WPF DataGrid - 我想知道什么时候用户输入新行
- 19. 管道标准输入到R
- 20. 什么时候Python导入?
- 21. 什么是“Clean C”,它与标准C有什么不同?
- 22. 异步队列,文件流到底怎么知道什么时候都完成
- 23. 有没有什么办法可以知道在C++中输出到标准输出的大小?
- 24. 测试什么时候没有属性
- 25. 为什么SSH不能在标准输入上使用管道密码?
- 26. ZF2什么时候使用getServiceLocator()什么时候不到
- 27. 什么时候创建了app.config,什么时候app.exe.config和有什么区别
- 28. Visual c#什么都没有出现
- 29. 什么都没有插入数据库?
- 30. 什么时候和为什么没有实现(java.lang.reflect.InvocationTargetException)发生?
据我所知,如果程序从tty读取,OP会产生一个错误,所以isatty是一个很好的答案。都输出|程序和程序<文件将失败isatty。 – 2011-02-12 05:35:34