默认情况下,某些程序根据它们写入的流类型来格式化它们的输出。例如,ls
和ls > file
的输出看起来不同。我想知道这是如何通过一个程序来实现的。另外,我们可以通过这种方式来欺骗这样的程序,就好像输出流是一个实际上是文件的终端(特别是当它们没有任何影响输出格式的选项时)?假输出流类型
Q
假输出流类型
4
A
回答
5
通过isatty
:
if (!isatty(fileno(stdout))
{
// redirected to a file or piped to a process
}
一种方式来欺骗是不是做重定向,开始script
。现在,所有进入'tty'的东西(包括你输入stdin和发送到输出的东西)都被发送到一个名为typescript的文件。
2
这些程序使用isatty(fileno(stdout))
来检查他们是否正在写入TTY(终端)或其他内容(例如管道)。
关于编造一个TTY,检查Trick an application into thinking its stdin is interactive, not a pipe
+0
感谢您的回复。 – Jeenu 2010-05-20 08:13:15
相关问题
- 1. Snort输出 - 流量类型识别
- 2. 控制台输出流的类型
- 3. Imagick输出假象
- 4. XML输出类泛型类
- 5. 输出流缓冲输出流附加
- 6. 我的脚本输出“假”
- 7. JSON.NET&控制输出流中提供的类型信息
- 8. 为什么返回类型引用输出流?
- 9. RoR响应输出类型
- 10. XmlSerializer输出xml类型
- 11. HTML5假设MIME类型
- 12. 以用户类型捕获输入流
- 13. 输入从流到枚举类型
- 14. 假视频流
- 15. 如何限制输入类型和输出类型相同?
- 16. 类型char的C++输入,类型为int的输出
- 17. 模板类的标准流输出
- 18. 在类中定义输出文件流
- 19. 乘以double类型值给出输出
- 20. MS CRM自定义工作流带有泛型类型的活动输出
- 21. 在流类型
- 22. 流类型
- 23. java输入输出流
- 24. JBoss输入/输出流
- 25. Java EE输入/输出流
- 26. Java ProcessBuilder:输入/输出流
- 27. 在appengine输出流
- 28. FFMpeg - 输出流#0.
- 29. 缓冲输出流
- 30. compareTo()得到真或假输出
更好的检查标准输出,而不是标准输入。 – ThiefMaster 2010-05-20 06:32:59
@ThiefMaster - 感谢您的领导。固定。 – 2010-05-20 06:34:49