Funcția fopen () deschide un fir pentru utilizare, leagă fișierul la acest fir și apoi întoarce indicatorul FILE la fluxul respectiv. Cel mai adesea fișierul este tratat ca un fișier de disc. Funcția fopen () are prototipul următor:
FILE * fopen (const char * nume fișier, const char * mod);
unde modul indică o linie care conține modul dorit de deschidere a fișierului. Valorile valide pentru modul în Borland C ++ sunt prezentate în tabel. numele fișierului trebuie să fie un șir de caractere care oferă numele de fișier corect în sistemul de operare și poate conține un nume de cale.
Funcția fopen () returnează un pointer la tipul de bază FILE. Acest pointer identifică fișierul și este utilizat de majoritatea funcțiilor sistemului de fișiere. Nu ar trebui să se schimbe niciodată pe cont propriu. Funcția returnează un pointer nul în cazul în care fișierul nu poate fi deschis.
După cum arată tabelul, fișierul poate fi deschis fie în text, fie în modul binar. În modul text, secvența de întoarcere a carului și feedul de linie sunt traduse la caracterul liniei noi atunci când tastați. În derivare, inversul este adevărat: caracterul de linie nouă este tradus în retur de cărucior și feed line. În fișiere binare, această traducere nu are loc. Atunci când nu este specificat nici t și b în argumentul modului, starea fișierului text / binar este determinată de valoarea _fmodei variabilei globale definite în Borland C ++. În mod implicit, fmode este setat la O_TEXT, adică este setat modul text. Dacă setați _fmode la O_BINARY, fișierele vor fi deschise în modul binar. (Aceste macrocomenzi sunt definite în fcntl.h). Desigur, folosirea explicitului t sau b elimină efectele asociate cu variabila _fmode. În plus, _fmode este tipic numai pentru produsele Borland. Nu este definit în sistemul de intrare / ieșire ANSI C.
Dacă trebuie să deschideți un fișier numit test pe înregistrare, ar trebui să scrieți:
fp = fopen ("test", "w");
unde fp este o variabilă de tip FILE *. Cu toate acestea, puteți vedea, de obicei, următoarele:
dacă ((fp = fopen ("test", "w")) == NULL) pune ("Nu se poate deschide fișierul");
ieșirea (1);
>
Această metodă vă permite să detectați erori la deschiderea unui fișier, de exemplu, prezența protecției la scriere sau lipsa spațiului liber pe disc.
Dacă fopen () este folosit pentru a deschide un fișier pentru scriere, orice fișier anterior cu numele specificat va fi șters. Dacă fișierul cu numele specificat nu există, acesta va fi creat.
Dacă doriți să adăugați informații la sfârșitul fișierului, trebuie să utilizați modul a (add). Dacă fișierul nu există, acesta va fi creat.
Deschiderea unui fișier pentru citire necesită un fișier. Dacă fișierul nu există, va fi returnată o eroare. Dacă fișierul este deschis pentru o operație de citire / scriere, acesta nu este șters dacă există unul și dacă fișierul nu există, acesta este creat.
Tabel: Valori permise ale modurilor