🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Czekanie na wolny bufor portu szeregowego - co robię źle?!?

#72844
From: Adam Wysocki
Date: Tue, 10 Jul 2018 09:47
32 lines
2379 bytes
spryciarzsprytny7@gmail.com wrote:

>>  Funkcja select() i pochodne usuwają deskryptory ze zbiorów.
> 
> Jak możesz tak pisać, skoro select/pselect zwraca liczbę gotowych do 
> pracy deskryptorów i one są w tej strukturze fd_set - sprawdza się je 
> makrem FD_ISSET(). Inna sprawa: co w sytuacji gdy ta struktura ponownie 
> zostanie podana do pselect/slelect gdy ma już ustawiony bit "set".

No właśnie. select() modyfikuje przekazany fd_set tak, żeby ustawione były 
tam jedynie deskryptory, na których wystąpiła aktywność. Inne są zerowane.

Jak struktura zostanie przekazana ponownie to select() weźmie pod uwagę 
tylko te deskryptory, które mają ustawioną flagę w fd_set czyli te, 
których aktywność zwrócił poprzedni select(). To prawie na pewno nie jest 
to, co chcesz osiągnąć.

Zawsze na nowo dodawaj deskryptory do fd_set przed wywołaniem select().

> Upon successful completion, the pselect() and select() functions shall 
> return the total number of bits set in the bit masks.
> 
> Co to za maska bitowa?!?
> Czy to to samo co: "zwraca liczbę deskryptorów gotowych do pracy"?!?

Tak.

fd_set może być zaimplementowany jako tablica masek bitowych.

-- 
[ Email: a@b a=grp b=chmurka.net ]
[ Web:   http://www.chmurka.net/ ]
Technical Details
Message-ID: <pi1vc7$dif$4$gof@news.chmurka.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.net!not-for-mail
References: <691200d3-8311-4c65-a7a5-f3f0820760c6@googlegroups.com> <5b40c2ff$0$602$65785112@news.neostrada.pl> <141fafeb-65fd-4782-a555-5d29960b3f1c@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.net!not-for-mail
From: gof@somewhere.invalid (Adam Wysocki)
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Czekanie na wolny bufor portu szeregowego - co
 robię źle?!?
Date: Tue, 10 Jul 2018 09:47:51 +0000 (UTC)
Organization: news.chmurka.net
Message-ID: <pi1vc7$dif$4$gof@news.chmurka.net>
References: <691200d3-8311-4c65-a7a5-f3f0820760c6@googlegroups.com> <5b40c2ff$0$602$65785112@news.neostrada.pl> <141fafeb-65fd-4782-a555-5d29960b3f1c@googlegroups.com>
NNTP-Posting-Host: pi.v.chmurka.net
Mime-Version: 1.0
Injection-Date: Tue, 10 Jul 2018 09:47:51 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="gof"; posting-host="pi.v.chmurka.net:172.24.44.20"; logging-data="13903"; mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: tin/2.4.1-20161224 ("Daill") (UNIX) (Linux/4.4.50-v7+ (armv7l))
Cancel-Lock: sha1:Svp0GF51A0OMZ9OAMBbVr4Fy+AU=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit