Puiu Anton 7833c84ae1 documentatie adaugata | 2 jaren geleden | |
---|---|---|
docs | 2 jaren geleden | |
kprobe | 2 jaren geleden | |
stdio | 2 jaren geleden | |
LICENSE | 2 jaren geleden | |
README.md | 2 jaren geleden |
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