2016-10-11 3 views
-1

Ich möchte eine evented lesen am seriellen Port, der nur ausgeführt wird, wenn die Daten verfügbar sind.Linux-Äquivalent von WaitCommEvent

Ich habe versucht sigaction, aber es verursacht ein Problem, wenn Sie eine Anwendung mit hohem Threading, auch sleep Funktion scheint falsch funktionieren nach vielen Foren.

So suche ich nach einem ähnlichen Weg wie in Windows WaitCommEvent, die in MSDN verwendet wird.

+1

C ** oder ** C++; nicht beide. Dies sind verschiedene Sprachen. –

+1

Alles ist eine Datei. Verwenden Sie [select()] (https://linux.die.net/man/3/select). –

+2

@ FrédéricHamidi: Wenn man bedenkt, dass Linux ist, könnte "poll"/"epoll" besser geeignet sein. – Olaf

Antwort

3

Die kanonische Entsprechung für Linux-Systeme ist poll() oder select() zu verwenden.

Die Funktionsweise ist natürlich anders.

+2

Es gibt viele andere Möglichkeiten, z.B. ein separater Thread, 'epoll', etc. Ich denke, die Frage ist zu proad/opinied. – Olaf