viernes, febrero 04, 2011

¿Cómo se si un descriptor de fichero está conectado a una tty?

Aunque casi siempre que he programado en C lo he hecho bajo Unix, nunca he tocado esa parte que corresponde al uso de las tty. El sistema tiene una llamada que te dice si un sistema la tiene, que es isatty, pero antes de existir esta llamada había una manera más pedreste de conseguirlo, que la vi en una referencia del Advanced Programing in the Unix enviroment, y es intentar obtener las propiedades del descriptor a través de tcgetattr. Teniendo en cuenta que Stevens es un gran escritor, creo que voy a hacerme con el libro, porque el estilo de Stevens es altamente didáctivo. Lástima que nos dejara hace diez años.

#include <stdio.h>
#include <stdlib.h>
#include <termios.h>

int main (int argc,char **argv){
        struct termios ts;
        if (tcgetattr (fileno (stdin),&ts)!=-1){                 printf ("stdin is  a tty\n");
        }else{
                printf ("stdin is not a tty\n");
        }
}

Technorati Tags:

No hay comentarios: