🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72851

Re: Jak skutecznie odczytać wolne miejsce w buforze nadawczym portu szeregowego?

#72851
From: szykcech
Date: Fri, 13 Jul 2018 18:11
13 lines
2461 bytes
Sprawdziłem i potwierdzam:
By zapisać N bajtów z bufora Buff do portu szeregowego trzeba:
1. Utorzyć zmienną pomocniczą int lWriten:
2. W pętli:
3. Wstawić deskryptor(y) portu do struktury fd_set makrem FD_SET
4. czekać na gotowość do zapisu portu szeregowego pselect/select (writefds)
5. zapisaywać tyle ile się da czyli lWiten += write(deskryptor, Buff, N - lWriten)
6. Jeśli nie N == lWriten skocz do 3.

Komentarz:
Oczywiście to tylko skrót tego co trzeba zrobić. Bo w normalnej aplikacji trzeba pomyśleć o obsłudze błędów, sygnałów od systemu, żądania przerwania pracy (np. przy zamykaniu programu)... Dlatego:
lWiten += write(deskryptor, Buff, N - lWriten)
Na pewno nie jest dobrym pomysłem, bo nie uwzględnia możliwości zwrócenia -1 przez write(). Dlatego tu trzeba się posłużyć zmienną pomocniczą.
Technical Details
Message-ID: <4ff6a835-fa64-488e-aa5e-b7442b4cdae5@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f6-v6no4687513qth.0!news-out.google.com!u13-v6ni1797qtg.0!nntp.google.com!f6-v6no4687506qth.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com> <pi4u7m$j0j$1$gof@news.chmurka.net> <b861f107-de90-4db7-8b82-2473d6bfb4e2@googlegroups.com> <pi5mpd$sa6$1$gof@news.chmurka.net>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:b488:: with SMTP id c8-v6mr4578700qve.19.1531505492846;        Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
X-Received: by 2002:a37:ac0d:: with SMTP id e13-v6mr430019qkm.2.1531505492646; Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f6-v6no4687513qth.0!news-out.google.com!u13-v6ni1797qtg.0!nntp.google.com!f6-v6no4687506qth.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.os.linux.programowanie
Date: Fri, 13 Jul 2018 11:11:32 -0700 (PDT)
In-Reply-To: <pi5mpd$sa6$1$gof@news.chmurka.net>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=188.146.234.123; posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
NNTP-Posting-Host: 188.146.234.123
References: <62ce83e9-ba03-4a59-8f59-6e4acc6ad001@googlegroups.com> <pi4u7m$j0j$1$gof@news.chmurka.net> <b861f107-de90-4db7-8b82-2473d6bfb4e2@googlegroups.com> <pi5mpd$sa6$1$gof@news.chmurka.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4ff6a835-fa64-488e-aa5e-b7442b4cdae5@googlegroups.com>
Subject: Re: Jak skutecznie odczytać wolne miejsce w buforze
 nadawczym portu szeregowego?
From: szykcech@gmail.com
Injection-Date: Fri, 13 Jul 2018 18:11:32 +0000
Lines: 19
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit