我想知道在Linux和C中是否可以找出我的程序输出被重定向到文件。
我希望在stdout $ ./myprogram
上打印时将输出设置为人类可读的格式,并在将其重定向到文件$ ./myprogram >> data.csv
它可以吗?
答案 0 :(得分:10)
您可以使用isatty
功能:
if (isatty(STDOUT_FILENO))
{
/* Standard out is an interactive terminal */
}
else
{
/* Standard out is something else (pipe, file redirect, etc.) */
}