<div dir="ltr">Mulțumesc Paul, presupunerile le-am facut și eu ca să pot testa codul, dar voiam să mă asigur că este corect și că nu voi fi depunctat.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 20 Mar 2019 at 17:14 Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com">olarupaulstelian97@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>Pe Windows într-adevăr nu respectăm modul în sine primit, doar vedem dacă trunchiem sau face append.</div><div dir="auto">Dacă fișierul nu există pe Linux, gândește-te la niște permisiuni decente. 0644 nu ar fi o valoare rea.</div><div dir="auto">Majoritatea funcțiilor au voie să crape dacă SO_FILE* este NULL -- cele din biblioteca standard (stdio.h) fac acest lucru și checkerul nu va da astfel de parametri. De asemenea, bufferele primite ca parametru vor fi întotdeauna valide. Singurele erori de memorie vor fi deci de la propria gestiune internă a resurselor.</div><div dir="auto"><br></div><div dir="auto">Makefile-urile trebuie să aibă o regulă build și una clean, as usual. Regula build va crea libso_stdio.so pe Linux și so_stdio.dll + so_stdio.lib pe Windows. (Notă, comanda pentru DLL va crea automat și LIB). Regula clean șterge tot ce a fost generat (fișiere .o, fișierul .so pe Linux, fișiere .obj, .dll și .lib pe Windows)</div><div dir="auto"><br></div><div dir="auto">Pentru tipul de buffering aștept și eu răspuns. Dar eu personal am mers pe single-buffered.<br><br><div class="gmail_quote" dir="auto"></div></div></div><div dir="auto"><div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Wed, Mar 20, 2019, 17:06 Ursescu Ionut via so <<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>> wrote:<br></div></div></div></div><div dir="auto"><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Salutare,<br><br>Am și eu câteva nelămuriri în legătură cu enunțul temei, după cum urmează:<br><br>- so_fopen are modurile de deschidere a fișierului primite ca argument, pentru implementarea pe Windows am văzut la 'Precizări Windows' faptul că trebuie să deschidem fișierele cu GENERIC_READ|GENERIC_WRITE. Trebuie ignorat modul primit ca argument legat de partea aceasta de scriere și citire (aici nu intră side-effects, trunchiere etc)<br><br>- so_fopen, cu ce permisiuni se va crea fișierul in cazul in care nu există<br><br>- funcțiile care primesc un SO_FILE *, ce trebuie să returneze în cazul în care vor primi un NULL<br><br>- nu este specificat ce trebuie pus pe checker, ce comenzi trebuie sa expună Makefile-ul dacă acesta trebuie să existe. (se poate modifica fișierul .h ?)<br><br>- contează modul in care noi am construit buffer-ul (de ex 1 pentru write, 1 pentru read si incă unul temporar) sau e important doar conceptul de buffering și nu detaliile de implementare.<br><br><br>Mulțumesc,<br>Ursescu Ionuț<br></div></blockquote></div></div></div><div dir="auto"><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div></div></div>
</blockquote></div>