5

我想知道在 linux 和 C 中是否可以发现我的程序输出被重定向到一个文件。我想在标准输出上打印输出时格式化人类可读的输出$ ./myprogram,当它被重定向到文件时像 csv$ ./myprogram >> data.csv

有可能吗?

4

1 回答 1

10

您可以使用该isatty功能:

if (isatty(STDOUT_FILENO))
{
    /* Standard out is an interactive terminal */
}
else
{
    /* Standard out is something else (pipe, file redirect, etc.) */
}
于 2013-02-07T06:16:10.750 回答