2009-06-30 18 views

Respuesta

36

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

Desde stdout siempre es el archivo descriptor 1, que puede hacer:

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

Y podrías explicar un poco más profundo? ¿Qué es realmente verificado por esta función? ¿Qué significa realmente "conectado a una terminal"? – xolodec

+0

@PavelShvechikov Significa que el descriptor de archivo está asociado con un dispositivo que se considera terminal. Ver 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."); 
Cuestiones relacionadas