CATEGORII DOCUMENTE |
Functia fopen()
Functia fopen se apeleaza printr-o expresie de atribuire de forma:
pf = fopen(spf,mod)
unde:
pf - este un pointer spre tipul FILE
spf - este specificatorul fisierului care se deschide
mod - este un sir de caractere care defineste modul in care se deschide fisierul.
Forma generala de declarare a functiei fopen() este:
FILE *fopen(char *filename, char *mode);
Functia deschide fisierul al carui nume este specificat prin 'filename' (de obicei un fisier disc) si intoarce un pointer la FILE pentru operatie reusita si NULL pentru operatie nereusita.
Varibilele permise pentru modul 'mode' sunt:
a |
_O_WRONLY | _O_APPEND (usual _O_WRONLY | _O_CREAT | _O_APPEND) |
a+ |
_O_RDWR | _O_APPEND (usual _O_RDWR | _O_APPEND | _O_CREAT ) |
r |
_O_RDONLY |
r+ |
_O_RDWR |
w |
_O_WRONLY(usual _O_WRONLY | _O_CREAT | _O_TRUNC) |
w+ |
_O_RDWR (usual _O_RDWR | _O_CREAT | _O_TRUNC) |
b |
_O_BINARY |
t |
_O_TEXT |
c |
Nimic |
n |
Nimic |
Modul 'a' nu sterge markerul de sfarsit d fisier EOF inainte de a adauga la sfarsitul fisierului. Dupa ce s-a facut o adaugare, comanda MS-DOS TYPE tipareste datele pana la markerul original EOF si nu pana la ultima data adaugata. Modul 'a+' sterge identificatorul de sfarsit de fisier EOF inainte de adaugarea de inregistrari la sfarsitul fisierului. Dupa adaugare comanda MS-DOS TYPE va tipari toate datele continute in fiier. Modul 'a+' este cerut pentru adaugarea la sfarsitul unui fisier care are marker terminator CTRL/Z = EOF.
Daca modul 'mode' include 'b' dupa litera initiala, ca in 'rb' sau 'w+b' se indica un fisier binar. Numele fisierului contine cel mult FILENAME_MAX caractere. La un moment dat pot fi deschise cel mult FOPEN_MAX fisiere.
Mentionam ca stdin, stdout si stderr sunt pointeri spre tipul FILE si permit ca functiile de nivel superior de prelucrare a fisierelor sa poata trata intrarea standard, iesirea standard si iesirea standard pentru erori, la fel ca si restul fisierelor. Singura deosebire consta in faptul ca in acest caz programatorul nu trebuie sa deschida sau sa inchida fisierele respective. Exemplu:
FILE *fp, *fopen(); /* se declara pointerii de tip file *fp si *fopen() */
fp = fopen('test','w'); /* se deschide fisierul ' test ' pentru screiere */
Pentru detectarea unei erori la deschiderea unui fisier se utilizeaza secventa:
if ((fp = fopen('test', 'w')) == NULL)
Daca pentru operatia de citire se incearca deschiderea unui fisier inexistent, fopen() va returna o eroare.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1099
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved