是的,在大多数系统上.在POSIX系统(Linux,Mac OS X,BSD等等)上,您可以使用isatty(3)文件描述符0(标准输入)上的函数.在Windows上,您可以使用_isatty.例如:
if(isatty(0))
{
// standard input is a terminal device
}
Run Code Online (Sandbox Code Playgroud)
请注意,许多程序用于isatty改变其输出缓冲行为:如果标准输出是终端,则输出是行缓冲的(例如,在每个换行符打印后刷新),而如果标准输出不是终端,则它是完全缓冲的(例如,只有当缓冲区变满,进程正常退出或者应用程序明确刷新流时才会刷新它.