C / Linux / kbhit()
Verfasst: Do Apr 21, 2022 7:28 pm
Hallo zusammen,
seit kurzem beschäftige ich mich ein bisschen mit C, weil ich nach ca. 15-jähriger Recherche festgestellt habe, dass unter meinem Betriebssystem (Linux) C einfach mehr die Heimat abbildet als Pascal, was ich eigentlich aus meiner Jugendzeit her kenne. Wohlgemerkt beschränke ich mich bei alldem auch auf Konsolenprogramme, keine GUI's.
Dann auch gleich zu meinem Problem : wenn ich also in C (wie gesagt unter Linux) eine Schleife realisieren will, die solange geht, bis ich eine Taste drücke, dann scheint es dafür keine native Möglichkeit zu geben, soweit ich sehe ?!? die "kbhit()"-Funktion ist unter Linux wohl nicht implementiert, alles was ich dazu gelesen habe besagt, dass man wohl am besten direkt am INT 16h nachhakt, ob eine Taste gedrückt ist.
Ist das wirklich so, und wenn ja, ist es überhaupt empfehlenswert diese Brechstangenmethode mit dem INT 16h zu realisieren, oder stellt das eher einen hässlichen Eingriff ins Betriebssystem dar?
Das ganze will ich mit Debian und GCC machen.
seit kurzem beschäftige ich mich ein bisschen mit C, weil ich nach ca. 15-jähriger Recherche festgestellt habe, dass unter meinem Betriebssystem (Linux) C einfach mehr die Heimat abbildet als Pascal, was ich eigentlich aus meiner Jugendzeit her kenne. Wohlgemerkt beschränke ich mich bei alldem auch auf Konsolenprogramme, keine GUI's.
Dann auch gleich zu meinem Problem : wenn ich also in C (wie gesagt unter Linux) eine Schleife realisieren will, die solange geht, bis ich eine Taste drücke, dann scheint es dafür keine native Möglichkeit zu geben, soweit ich sehe ?!? die "kbhit()"-Funktion ist unter Linux wohl nicht implementiert, alles was ich dazu gelesen habe besagt, dass man wohl am besten direkt am INT 16h nachhakt, ob eine Taste gedrückt ist.
Ist das wirklich so, und wenn ja, ist es überhaupt empfehlenswert diese Brechstangenmethode mit dem INT 16h zu realisieren, oder stellt das eher einen hässlichen Eingriff ins Betriebssystem dar?
Das ganze will ich mit Debian und GCC machen.