2009-06-30 35 views

回答

36

使用isatty()

$ man isatty 
ISATTY(3)     Linux Programmer's Manual     ISATTY(3) 

NAME 
     isatty - does this descriptor refer to a terminal 

SYNOPSIS 
     #include <unistd.h> 

     int isatty(int desc); 

DESCRIPTION 
     returns 1 if desc is an open file descriptor connected to a terminal 
     and 0 otherwise. 

由於stdout總是文件描述符1,你可以這樣做:

if(isatty(1)) 
    // stdout is a terminal 
+0

你能解釋一個稍微深一點? 這個功能真的檢查了什麼? 真正的意思是「連接到終端」? – xolodec 2014-02-08 08:13:43

5
if (isatty (1)) 
    fprintf (stdout, "Outputting to a terminal."); 
else 
    fprintf (stdout, "Not outputting to a terminal.");