Forum: PC-Programmierung Event Notification für character files


von Hans A. (fresh)


Lesenswert?

Hi
Ich versuche gerade in einen C Programm zu erkennen ob in eine Datei 
neue Daten zu lesen sind. Ich verwende dazu die Funktion poll (aus 
poll.h) und das geht sehr gut. Aber nun habe ich ein Character file vom 
evdev Treiber unter Linux welches man nicht einfach für poll verwenden 
kann. Gibt es da eine andere Möglichkeit um gezielt mit zubekommen wenn 
neue Daten vorhanden sind?!

von Norbert (Gast)


Lesenswert?

Harald S. schrieb:
> Hi
> Ich versuche gerade in einen C Programm zu erkennen ob in eine Datei
> neue Daten zu lesen sind. Ich verwende dazu die Funktion poll (aus
> poll.h) und das geht sehr gut. Aber nun habe ich ein Character file vom
> evdev Treiber unter Linux welches man nicht einfach für poll verwenden
> kann. Gibt es da eine andere Möglichkeit um gezielt mit zubekommen wenn
> neue Daten vorhanden sind?!

Ich meine mich zu erinnern, das man einfach non-blocking liest.
Der Returncode sagt einem dann ob's Daten gab oder nicht.

von Daniel A. (daniel-a)


Lesenswert?

Hast du select schon versucht?

von Rolf Magnus (Gast)


Lesenswert?

Harald A. schrieb:
> Aber nun habe ich ein Character file vom evdev Treiber unter Linux
> welches man nicht einfach für poll verwenden kann.

Warum nicht?

von Bernhard M. (boregard)


Lesenswert?

Daniel A. schrieb:
> Hast du select schon versucht?

Er hat doch poll genommen, das ist doch im Prinzip ein verpackter 
select, oder?

von Rolf Magnus (Gast)


Lesenswert?

Bernhard M. schrieb:
> Er hat doch poll genommen, das ist doch im Prinzip ein verpackter
> select, oder?

Eher umgekehrt, aber ja, poll() und select() tun im Prinzip das gleiche.

von Clemens L. (c_l)


Lesenswert?

Documentation/input/input.txt sagt:
> You can use blocking and nonblocking reads, also select() on the
> /dev/input/eventX devices

Was genau ist das Problem in deinem Code?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.