我正在编写一个 C 程序,该程序输出stdout
到stderr
. 该程序接受一个命令,例如:
./myprogram function_to_run file_to_read
我的程序既可以输出到stdout
文件,也可以被定向到输出文件,但不能重定向到/dev/null
. 例如:
./myprogram function_to_run file_to_read //OK
./myprogram function_to_run file_to_read > file.txt //OK
./myprogram function_to_run file_to_read > /dev/null // NOT OK, should produce error in stderr
我尝试使用isatty(1)
,但它只能检测是否stdout
正在输出到终端。因此,对于stdout
重定向到文件的情况,它会失败,这在我的情况下是可以接受的
有没有办法在C中检查这个?如果没有,有什么建议我可以检查 /dev/null 场景吗?