[APORTE] conio.h mínimo para Llinux

Iniciado por MAFUS, 29 Mayo 2017, 11:06 AM

0 Miembros y 1 Visitante están viendo este tema.

MAFUS

Es frecuente en este foro encontrarse con gente que sigue trabajando con TurboC de Borland con la líbrería conio.h y normalmente la usan para dos o tres funciones: gotoxy, getch y getche. Para los que trabajamos con Linux nos da un poco de pereza ir editando todas esas líneas para hacer el código ejecutable. Pues bien, a raíz de eso he decidido hacerme una pequeña conio para quitarme de encima susodicho trabajo y ahora quiero compartirla con vosotros.

conio.h
#ifndef CONIO_PARA_LINUX
#define CONIO_PARA_LINUX

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

void gotoxy(int x, int y) {
    printf("\33[%d;%df", y, x);
}

static char getch_interno(int eco) {
    char c;
    struct termios old, new;
   
    tcgetattr(0, &old);
    new = old;
    new.c_lflag &= ~ICANON;
    new.c_lflag &= eco ? ECHO : ~ECHO;
    tcsetattr(0, TCSANOW, &new);
    c = getchar();
    tcsetattr(0, TCSANOW, &old);
   
    return c;
}

char getch() {
    return getch_interno(0);
}

char getche() {
    return getch_interno(1);
}

#endif