Puiu Anton cbc985da8e teme inserate | %!s(int64=2) %!d(string=hai) anos | |
---|---|---|
.. | ||
src | %!s(int64=2) %!d(string=hai) anos | |
Makefile | %!s(int64=2) %!d(string=hai) anos | |
README.md | %!s(int64=2) %!d(string=hai) anos |
SO_FILE *so_fopen(const char *pathname, const char *mode);
int so_fclose(SO_FILE *stream);
int so_fgetc(SO_FILE *stream);
int so_fputc(int c, SO_FILE *stream);
size_t so_fread(void *ptr, size_t size, size_t nmemb, SO_FILE *stream);
size_t so_fwrite(const void *ptr, size_t size, size_t nmemb, SO_FILE *stream);
int so_fseek(SO_FILE *stream, long offset, int whence);
long so_ftell(SO_FILE *stream);
int so_fflush(SO_FILE *stream);
int so_fileno(SO_FILE *stream);
int so_feof(SO_FILE *stream);
int so_ferror(SO_FILE *stream);
-
Obligatoriu:
Consideri implementarea naivă, eficientă, se putea mai bine? Da, se putea mult mai bine. Implementarea este primul prototip, dar aceasta trebuie modificata, intrucat pentru a implementa functiile 'popen'/'pclose', trebuie schimbat modul in care determin daca am ajuns sau nu la EOF, iar implementarea 'ftell' lasa de dorit.
Am implementat totul, mai putin functiile 'popen'/'pclose'.
Pentru modelare, am ales sa definesc anumite structuri, cum ar fi 'MODE', 'BOOL' si tipul enumerare 'LAST_OP' pentru a spori lizibilitatea codului.
Bibliografie