Laborator 10
  1. Fisiere
  2. Intrari/iesiri la nivel "low"

Fisiere

Un fisier este o colectie ordonata de elemente (inregistrari) care se afla depozitate pe un mediu extern, de regula reutilizabil. Putem vorbi de fisier de intrare si de fisier de iesire (de obicei cele doua nu sunt identice). Prelucrarea unor astfel de fisiere impune utilizarea unor operatii:
deschiderea unui fisier pozitionarea intr-un fisier
crearea unui fisier adaugare de inregistrari
consultarea unui fisier stergerea unui fisier
actualizarea unui fisier inchiderea fisierului


Intrari/iesiri la nivel "low"

Deschiderea fisierului se face astfel:


        int open(const char *cale, int acces);

unde acces poate avea una din valorile :


    O_RDONLY numai citire       O_RDWR    citire/scriere
    O_WRONLY numai scriere      O_APPEND  deschidere la sfirsit
    O_BINARY fisier binar       O_TEXT    fisier text

Exemplu


 char numef[]="date.txt";
 int df;
 .....
 df=open(numef,O_RDONLY);

Crearea unui fisier :


 int creat(char *cale,int indicator)

unde indicator poate fi


  S_IREAD       S_IWRITE        S_IEXEC

Citirea se face prin instructiunea:


        int read(int df,void *buf,unsigned long l);
        df  - descriptor de fisier
        buf - zona de memorie in care se face citirea
        l   - dimensiunea inregistrarii care se vrea citita

iar scrierea astfel:


        int write(int df,void *buf,unsigned long l);

Obs. Citeva fisiere au descriptorii de fisier fixati:


 stdin - 0      stdout - 1      stderr - 2

Pozitionarea intr-un fisier se face prin:


        long lseek(int df,long depl,int origine)
        depl - numarul de octeti peste care se va deplasa capul de citire/scriere
        origine - 0 deplasare fata de inceput
                  1 deplasare fata de pozitia curenta
                  2 deplasare fata de sfirsitul fisierului

        int close(int df)

va inchide fisierul.


Probleme rezolvate
Probleme propuse

Previous | Next | Home |