[C] Obsługa terminala Linux, termios.h, ECHO.

0

Witam.
Mam do napisania program, który przy użyciu struktury * termios*, wyłączy echo w terminalu, a ponowne uruchomienie programu, przywróci to echo.

#include <termios.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>


int main()
{

        if(isatty(0)){
                struct termios ustawienia;

                if(tcgetattr(0,&ustawienia)<0)
                        perror("tcgetattr");
                printf("c_lflag: %d\n",ustawienia.c_lflag);
                        ustawienia.c_lflag ^= ~ECHO;
                        if(tcsetattr(0,TCSANOW,&ustawienia)<0)
                                perror("tcsetattr");
        }

        return 0;
}

Program zmienia wartość flagi, co widać po uruchomieniu, jednak echo wciąż jest włączone. Wyświetla się dodatkowo komunikat readline: warning: turning off output flushing Czy gdzieś popełniam błąd w rozumowaniu problemy, czy jest to czysto programistyczny błąd?
Pozdrawiam

0
 ustawienia.c_lflag ^= ECHO;

1 użytkowników online, w tym zalogowanych: 0, gości: 1