首页 > 开发 > linux > 正文

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

2017-09-11 20:33:13  来源: 网友分享

或者说,怎么知道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;}