2009-06-30 5 views

Antwort

36

Verwendung 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. 

Da stdout immer Descriptor 1-Datei ist, können Sie tun:

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

Und könnten Sie ein wenig tiefer erklären? Was wird wirklich von dieser Funktion überprüft? Was bedeutet wirklich "an ein Terminal angeschlossen"? – xolodec

+0

@PavelShvechikov Dies bedeutet, dass der Dateideskriptor mit einem Gerät verknüpft ist, das als Terminal betrachtet wird. Siehe http://en.wikipedia.org/wiki/POSIX_terminal_interface –

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