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: csiph.com!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: 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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4ff6a835-fa64-488e-aa5e-b7442b4cdae5@googlegroups.com> Subject: =?UTF-8?Q?Re=3A_Jak_skutecznie_odczyta=C4=87_wolne_miejsce_w_buforze?= =?UTF-8?Q?_nadawczym_portu_szeregowego=3F?= From: szykcech@gmail.com Injection-Date: Fri, 13 Jul 2018 18:11:32 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Lines: 19 Xref: csiph.com pl.comp.os.linux.programowanie:2124 Sprawdzi=C5=82em i potwierdzam: By zapisa=C4=87 N bajt=C3=B3w z bufora Buff do portu szeregowego trzeba: 1. Utorzy=C4=87 zmienn=C4=85 pomocnicz=C4=85 int lWriten: 2. W p=C4=99tli: 3. Wstawi=C4=87 deskryptor(y) portu do struktury fd_set makrem FD_SET 4. czeka=C4=87 na gotowo=C5=9B=C4=87 do zapisu portu szeregowego pselect/se= lect (writefds) 5. zapisaywa=C4=87 tyle ile si=C4=99 da czyli lWiten +=3D write(deskryptor,= Buff, N - lWriten) 6. Je=C5=9Bli nie N =3D=3D lWriten skocz do 3. Komentarz: Oczywi=C5=9Bcie to tylko skr=C3=B3t tego co trzeba zrobi=C4=87. Bo w normal= nej aplikacji trzeba pomy=C5=9Ble=C4=87 o obs=C5=82udze b=C5=82=C4=99d=C3= =B3w, sygna=C5=82=C3=B3w od systemu, =C5=BC=C4=85dania przerwania pracy (np= . przy zamykaniu programu)... Dlatego: lWiten +=3D write(deskryptor, Buff, N - lWriten) Na pewno nie jest dobrym pomys=C5=82em, bo nie uwzgl=C4=99dnia mo=C5=BCliwo= =C5=9Bci zwr=C3=B3cenia -1 przez write(). Dlatego tu trzeba si=C4=99 pos=C5= =82u=C5=BCy=C4=87 zmienn=C4=85 pomocnicz=C4=85.