程序可以检测它的标准输入是 来自键盘输入与存在 从文件重定向?在 C 中?
最佳答案
是的,在大多数系统上。在 POSIX 系统(Linux、Mac OS X、BSD 等)上,您可以使用 isatty(3)
文件描述符 0(标准输入)上的函数。在 Windows 上,您可以使用 _isatty
.例如:
if(isatty(0))
{
// standard input is a terminal device
}
请注意,许多程序使用 isatty
来改变它们的输出缓冲行为:如果标准输出是终端,则输出是行缓冲的(例如,在打印每个换行符后刷新),而如果标准输出不是终端,它是完全缓冲的(例如,仅当缓冲区已满、进程正常退出或流被应用程序显式刷新时才刷新)。
关于c - Stdin 来自键盘或文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708247/