next up previous contents
Next: Operatii asupra fisierelor Up: Prelucrarea fisierelor Previous: Prelucrarea fisierelor   Cuprins


Tratarea fisierelor în C

În C, operatiile de intrare/iesire au la baza conceptul de stream. Un stream (flux) este o interfata logica între diverse dispozitive ale unui calculator. În mod uzual, un stream este o interfata logica pentru un fisier. Conceptul de fisier, în C este mai larg decât în alte limbaje de programare, el incluzând un fisier pe suport permanent (hard-disk, CD, etc.), ecranul, tastatura, diverse porturi, s.a.m.d. Tratarea unitara a tuturor operatiilor de intrare/iesire prin intermediul stream-urilor asigura o mai mare portabilitate limbajului C, cât si o transparenta pentru programator fata de arhitectura masinii pe care lucreaza.

Un stream este asociat unui fisier printr-o operatie de deschidere (open), asocierea distrugându-se prin operatia de închidere a stream-ului (close).

Exista doua tipuri de stream-uri: text si binare. Ceea ce diferenteaza cele doua tipuri este existenta unor translatii în cazul stream-urile text. De exemplu, caraterul newline (sfârsit de linie) când este întâlnit este convertit într-o secventa de doua caractere carriage-return/linefeed (întoarcere/deplasare rând). Din acest motiv, poate sa apara o diferenta între ceea ce este trimis la stream si ceea ce este scris fizic în fisier.

În cazul stream-urilor binare, exista o perfecta concordanta între stream si fisierul fizic, astfel stream-urile binare pot fi folosite cu orice tip de date, pe când în cazul celor de tip text exista anumite limitari. Exista sisteme de operare (cum ar fi Unix-ul) în care nu exista stream-uri de tip text.

La deschiderea unui stream, se asociaza acestuia un pointer la o structura de tip FILE (fisier). Aceasta structura, definita în stdio.h, retine diverse informatii legate de fisierul deschis (dimensiune, pozitia curenta a cursorului în fisier, moduri de acces). Prin operatia de deschidere, se rezerva automat si o zona tampon pentru transferul datelor.


next up previous contents
Next: Operatii asupra fisierelor Up: Prelucrarea fisierelor Previous: Prelucrarea fisierelor   Cuprins
Cristian Gavrila 2001-10-02