或者说,怎么知道stdout是否被重定向?
不管怎样,谢谢各位~
解决方案
#include <sys/stat.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>int main(){ struct stat st; fstat(STDOUT_FILENO, &st); if(S_ISCHR(st.st_mode)) fprintf(stderr, "terminal\n"); else if(S_ISREG(st.st_mode)) fprintf(stderr, "regular file\n"); else { //what ever } return 0;}