linux下怎么做到当printf不是输出到屏幕时,就不执行printf?


或者说, 怎么知道stdout是否被重定向?
不管怎样,谢谢各位~

输出 printf 重定向 c Linux

傲慢之路西法 10 years, 5 months ago
#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;
}
撸炮大魔王 answered 10 years, 5 months ago

Your Answer