deki
21-12-2004, 21:52
Hallo!
Ich suche eine Möglichkeit STDIN auf non-blocking zu schalten, d.h. wenn ich mit read() von STDIN auslese sollte sofort jedes Zeichen ausgelesen werden.
(Ähnlich wie getch() unter ncurses.)
Über google habe ich schon gefunden, dass man über fcntl() fds in den non-blocking Modus schalten kann.
Leider funktioniert das nicht.
Hier das Test-Programm, das eigentlich funktionieren müsste, es aber nicht tut: ;)
#include <unistd.h>
#include <fcntl.h>
int main ()
{
char c;
fcntl (0, F_SETFD, O_NONBLOCK);
read (0, &c, 1);
return 0;
}
Das Programm beendet erst nach der Eingabe von einem Newline Zeichen.
Wäre nett, wenn mir jemand helfen könnte :D
MfG
deki
PS: Ich habe meine Gründe, warum ich ncurses und Co. nicht verwenden kann....
Ich suche eine Möglichkeit STDIN auf non-blocking zu schalten, d.h. wenn ich mit read() von STDIN auslese sollte sofort jedes Zeichen ausgelesen werden.
(Ähnlich wie getch() unter ncurses.)
Über google habe ich schon gefunden, dass man über fcntl() fds in den non-blocking Modus schalten kann.
Leider funktioniert das nicht.
Hier das Test-Programm, das eigentlich funktionieren müsste, es aber nicht tut: ;)
#include <unistd.h>
#include <fcntl.h>
int main ()
{
char c;
fcntl (0, F_SETFD, O_NONBLOCK);
read (0, &c, 1);
return 0;
}
Das Programm beendet erst nach der Eingabe von einem Newline Zeichen.
Wäre nett, wenn mir jemand helfen könnte :D
MfG
deki
PS: Ich habe meine Gründe, warum ich ncurses und Co. nicht verwenden kann....