如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”?

如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“<”或“>”? 答:不能直接判断,但是通常可以查看其他东西以帮助你做出判断。如果你希望你的程序在没有输入文件的时候从stdin获取输入,那么只要argv没有提供输入文件或者提供了占位符(如"-")而不是文件名,就可以从stdin获取输入了。如果你希望在输入不是来自交互终端的时候禁止输出,那么在某些系统(如UNIX和MS-DOS)下,可以使用isatty(0)或isatty(fileno(stdin))来做出判断。
posted @ 2012-07-16 18:31  adodo1  Views(139)  Comments(0Edit  收藏  举报