プログラムの出力がファイルにリダイレクトされることを Linux と C で確認できるかどうかを知りたいです。出力を標準出力に出力するときは人間が読めるようにフォーマット$ ./myprogram
し、ファイルにリダイレクトするときは csv のようにフォーマットしたい$ ./myprogram >> data.csv
可能ですか?
isatty
そのために関数を使用できます:
if (isatty(STDOUT_FILENO))
{
/* Standard out is an interactive terminal */
}
else
{
/* Standard out is something else (pipe, file redirect, etc.) */
}