On Sun, Mar 24, 2002 at 04:45:16AM +0100, Harold Gutch wrote:
> Hi,
>
> ich habe letztens ein serielles Kabel fuer das Nokia 6210 in die
> Haende bekommen und wollte nun ein wenig damit rumspielen. Das
> Telefon versteht AT-Befehle und ist m.W. komplett darueber
> ansteuerbar, das ganze sollte also nicht allzu wild sein. Jetzt
> habe ich also ein kleines C-Programm zusammengehackt, das im
> Prinzip nichts anderes macht als ein "ATI\r" an die Schnittstelle
> an der das Geraet haengt zu schicken, und danach mit einem
> read() Daten von derselben zu lesen - und an dieser Stelle
> blockt das Programm, sprich es scheinen keine Daten zum Lesen
> vorzuliegen. Aendere ich das ganze allerdings leicht so dass ich
> einen zweiten Prozess forke, den zuerst (blockend) read()en lasse,
> dann Daten schreibe, so funktioniert es wie erwartet. Habe ich
> jetzt das Konzept von seriellen Schnittstellen nicht verstanden,
> oder ist da was anderes kaputt?
Die klassischen Programme wie tip und cu starten auch einen eigenen
Prozess für jede Richtung.
Heutzutage kann man das aber mit non-blocking I/O oder pthreads
erledigen.
In deinem Programm fehlt auch die Prüfung auf retval -1 und damit
der Support für EINTR beim read und write.
-- B.Walter COSMO-Project http://www.cosmo-project.de ticso(at)cicely.de Usergroup info(at)cosmo-project.de To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Sun 24 Mar 2002 - 11:41:38 CET