[C / C ] getch(), getche() in Dev-C and Linux

In the dev-C from 4.9 or less and in Linux does not support conio.h library so we can not use some of the functions which getch() and getche.

Here is the code construction 2 This content:

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

/* reads from keypress, doesn't echo */
int getch(void)
{
    struct termios oldattr, newattr;
    int ch;
    tcgetattr( STDIN_FILENO, &oldattr );
    newattr = oldattr;
    newattr.c_lflag &= ~( ICANON | ECHO );
    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
    return ch;
}

/* reads from keypress, echoes */
int getche(void)
{
    struct termios oldattr, newattr;
    int ch;
    tcgetattr( STDIN_FILENO, &oldattr );
    newattr = oldattr;
    newattr.c_lflag &= ~( ICANON );
    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
    return ch;
}

// nhap vao 1 dong chu, khi gap tu "ketthuc" thi dung lai ma khong can an enter
// Su dung ham getche();
int main(){
    char x;
    char kt[] = "ketthuc";
    int i = 0;
    while(1){
        x = getche();
        if (x == kt[i]) i++;
        else i = 0;
        if (i==7) break;
    }
    return 0;
}

Refer to at stackoverflow.com and zobayer.blogspot.com