<div dir="ltr">Salut,<br><br>Uite alta presupunere valida: daca tu citesti sa zicem 2K, ii folosesti pe aia pana ai nevoie de altii. Nu consideri ca ai ajuns la EOF, ci doar folosesti ce ai, fara sa ai bufferul plin.<br><br>Are sens si merge. Recomand.<br><br>Teodor Dutu</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 15, 2020 at 10:29 PM Vlad Lungu via so <<a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Da, daca fac presupunerea asta nu mai apare problema specificata. Insa e o presupunere complet gresita. Read nu garanteaza ca va citi cat ii dam noi, asa ca nu ne putem baza pe asa ceva. Testul in sine e cel mai simplu. Face doua so_fgetc. Primul populeaza, teoretic, bufferul, al doilea citeste din buffer. Testul vrea un singur apel de read pentru ca al doilea so_fgetc ar trebui sa citeasca din buffer, nu printr-un read. Ce e de facut?<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">În dum., 15 mar. 2020 la 22:24, Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com" target="_blank">olarupaulstelian97@gmail.com</a>> a scris:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Bine, nu știu cum e testul în sine. Dacă so_fread e apelat cu maxim 14 tu nu ar trebui să faci mai multe citiri. Când bufferul e gol și ai nevoie de date faci o singură citire, chiar dacă e sub cât are nevoie bufferul ca să se umple.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 15, 2020, 22:21 Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com" target="_blank">olarupaulstelian97@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Cred că există o presupunere (nu tocmai validă) în checker că poți profita de faptul că dacă un apel read ți-a returnat mai puțin decât i-ai cerut singurul motiv ar fi EOF.<div dir="auto"><br></div><div dir="auto">Dacă faci chestia asta îți trec toate testele?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 15, 2020, 22:18 Vlad Lungu via so <<a href="mailto:so@cursuri.cs.pub.ro" rel="noreferrer" target="_blank">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Salut,</div><div>  Primesc aceasta eroare. Checkerul asteapta sa fac o singura operatie de read pentru a popula bufferul. Eu fac fix ca la laborator. Intr-o bucla while testez daca mai am de citit. Daca a umplut bufferul sau apelul read a intors 0(eof), ies din bucla. Initial bufferul e 4096, citeste 14. Nu a intors 0, deci nu marcheaza eof si nu iese. Nu a umplut bufferul, deci nu iese. Astfel, face un al doilea apel de sistem, care intoarce 0 si iese din bucla. O solutie pe care o vad pentru a trece de checker e sa retin undeva si dimensiunea fisierului. in momentul in care dimensiunea fisierului a fost atinsa, iese. Asta se doreste?<br></div></div>
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div>
</blockquote></div>
</blockquote></div>
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div>