Pe Windows într-adevăr nu respectăm modul în sine primit, doar vedem dacă trunchiem sau face append. Dacă fișierul nu există pe Linux, gândește-te la niște permisiuni decente. 0644 nu ar fi o valoare rea. 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.
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) Pentru tipul de buffering aștept și eu răspuns. Dar eu personal am mers pe single-buffered. On Wed, Mar 20, 2019, 17:06 Ursescu Ionut via so <[email protected]> wrote: > Salutare, > > Am și eu câteva nelămuriri în legătură cu enunțul temei, după cum urmează: > > - 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) > > - so_fopen, cu ce permisiuni se va crea fișierul in cazul in care nu există > > - funcțiile care primesc un SO_FILE *, ce trebuie să returneze în cazul în > care vor primi un NULL > > - 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 ?) > > - 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. > > > Mulțumesc, > Ursescu Ionuț > _______________________________________________ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
