Accesul la fisiere; deschidere si inchidere
Nume
fopen - deschide un flux
Declaratie
FILE *fopen(const char *path,
const char *mode);
Descriere
Functia fopen deschide fisierul al carui nume este un sir indicat de path si ii asociaza un flux.
Argumentul mode indica un sir care incepe cu una din secventele urmatoare:
r deschide un fisier pentru citire;
r+ deschide pentru citire si scriere;
w trunchiaza fisierul la lungime zero sau creeaza un fisier pentru scriere;
w+ deschide pentru adaugare la sfirsit, in citire si scriere; fisierul este creat daca nu exista, altfel este trunchiat;
a deschide pentru adaugare la sfirsit, in scriere; fisierul este creat daca nu exista;
a+ deschide pentru adaugare la sfirsit, in citire si scriere; fisierul este creat daca nu exista;
Dupa deschidere, in primele patru cazuri indicatorul pozitiei in flux este la inceputul fisierului, in ultimele doua la sfirsitul acestuia.
Sirul mode include de asemenea litera b (deschide un fisier binar) sau t (deschide un fisier text) fie pe ultima pozitie fie pe cea din mijloc.
Operatiile de citire si scriere pot alterna in cazul fluxurilor read / write in orice ordine. Sa retinem ca standardul ANSI C cere sa existe o functie de pozitionare intre o operatie de intrare si una de iesire, sau intre o operatie de iesire si una de intrare, cu exceptia cazului cind o operatie de citire detecteaza sfirsitul de fisier. Aceasta operatie poate fi inefectiva - cum ar fi fseek(flux, 0L, SEEK_CUR) apelata cu scop de sincronizare.
Valori returnate
In caz de succes se returneaza un pointer de tip FILE. In caz de eroare se returneaza NULL si variabila globala errno indica codul erorii.
Nume
fclose - inchide un flux
Declaratie
int fclose( FILE *flux);
Descriere
Functia fclose inchide fisierul asociat fluxului flux. Daca flux a fost deschis pentru iesire, orice date aflate in zone tampon sint scrise in fisier in prealabil cu un apel fflush
Valori returnate
In caz de succes se returneaza . In caz de eroare se returneaza EOF si variabila globala errno indica codul erorii.
Nume
tmpfile - creeaza un fisier temporar
Declaratie
FILE *tmpfile();
Descriere
Functia tmpfile genereaza un nume unic de fisier temporar. Acesta este deschis in mod binar pentru scriere / citire ('wb+'). Fisierul va fi sters automat la inchidere sau la terminarea programului.
Valoare returnata
Functia returneaza un descriptor de flux in caz de succes, sau NULL daca nu poate fi generat un nume unic de fisier sau daca fisierul nu poate fi deschis. In caz de eroare variabila globala errno indica codul erorii.
Nume
fflush - forteaza scrierea in flux
Declaratie
int fflush(FILE *flux);
Descriere
Functia fflush forteaza o scriere a tuturor datelor aflate in zone tampon ale fluxului flux. Fluxul ramine deschis.
Valori returnate
In caz de succes se returneaza . In caz de eroare se returneaza EOF si variabila globala errno indica codul erorii.
Nume
fseek ftell rewind - repozitioneaza un flux
Declaratie
int fseek(FILE *flux, long offset,
int reper);
long ftell(FILE *flux);
void rewind(FILE *flux);
Descriere
Functia fseek seteaza indicatorul de pozitie pentru fisierul asociat fluxului flux. Noua pozitie, data in octeti, se obtine adunind offset octeti la pozitia specificata de reper. Daca reper este SEEK_SET SEEK_CUR, sau SEEK_END offset este relativ la inceputul fisierului, pozitia curenta a indicatorului, respectiv sfirsitul fisierului. Functia fseek sterge indicatorul de sfirsit de fisier.
Functia ftell obtine valoarea curenta a indicatorului de pozitie pentru fisierul asociat fluxului flux
Functia rewind pozitioneaza indicatorul de pozitie pentru fisierul asociat fluxului flux la inceputul fisierului. Este echivalenta cu:
(void)fseek(flux, 0L, SEEK_SET)
cu completarea ca functia rewind sterge si indicatorul de eroare al fluxului.
Valori returnate
Functia rewind nu returneaza nici o valoare. In caz de succes, fseek returneaza , si ftell returneaza offset-ul curent. In caz de eroare se returneaza EOF si variabila globala errno indica codul erorii.
|