找出我的程序输出被重定向到一个文件

mic*_*oo8 5 c linux output

我想知道在Linux和C中是否可以找出我的程序输出被重定向到一个文件.我希望在stdout上打印时将输出格式化为人类可读的格式,$ ./myprogram并在将其重定向到文件时将其格式化为csv$ ./myprogram >> data.csv

它可以吗?

Som*_*ude 10

您可以使用该isatty功能:

if (isatty(STDOUT_FILENO))
{
    /* Standard out is an interactive terminal */
}
else
{
    /* Standard out is something else (pipe, file redirect, etc.) */
}
Run Code Online (Sandbox Code Playgroud)