Activitatea de laborator:
1. să examineze funcțiile sistemului de intrare / ieșire standard MS Windows.
2. efectuați un program folosind funcțiile studiate, conform indicațiilor profesorului.
Lucrare de laborator nr. 2
MĂSURI DE BAZĂ DE UTILIZARE A SISTEMULUI FILE
Pentru a utiliza în întregime sistemul de fișiere, trebuie să aveți instrumentele necesare pentru a lucra cu orice fișier specificat în cadrul programului. Pentru a citi dintr-un fișier sau pentru ao scrie, este necesară valoarea mâner asociată cu acest fișier. Mânerul de fișiere poate fi obținut în Windows de către funcția de sistem CreateFile. Lucrul cu fișierul este anulat de funcția de sistem CloseHandle.
Funcția CreateFile este utilizat pentru crearea efectivă și, în special, pentru a deschide un fișier existent. Rețineți că, în MS Windows, există două variante de funcții pentru a crea și de a deschide o alta decât ultima literă A suplimentară fișier sau W. Prima opțiune corespunde la utilizarea standardului de codificare a caracterelor ANSI, iar al doilea - în conformitate cu standardul UNICODE. A doua opțiune utilizează nu unul, ci doi octeți pentru fiecare caracter. În momentul de față vom folosi o versiune mai conservatoare a ANSI.
MÂNER CreateFile (LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, dwFlagsAttributes DWORD, HANDLE hTemplateFile);
în cazul în care lpFileName stabilește un pointer la numele fișierului, dwDesiredAccess - codul pentru acces dorit, dwShareMode - cod diviziune modul de lucru cu fișierul, lpSecurityAttributes - un pointer la atributul de protecție fișier, dwCreationDisposition - codul de acțiune pe fișier în timpul executării acestei funcții, dwFlagsAttributes - steaguri atribut, hTemplateFile - fișier șablon cu atribute extinse.
Parametrul DwFlagsAttributes specifică atributul fișierului pentru a deschide. Acest atribut utilizează biți separați. Normal (normal) atribut de fișier este egal cu 0, fișierul read-only - 1 atribut, fișierul ascuns - atributul egal cu 2, fișierul de sistem - atribut al 4. Cea mai comună utilizare a acestui parametru poate fi o FILE_ATTRIBUTE_NORMAL constantă simbolică. Pentru a codifica numele de fișier pentru a deschide accesul sunt cele două constante simbolice GENERIC_READ și GENERIC_WRITE, definind respectiv permisiunea de a citi și scrie la dosar. Ele pot fi utilizate împreună prin combinarea (operație logică) într-un singur parametru dwDesiredAccess. sau separat. Partajarea fișierelor definite FILE_SHARE_READ constantă simbolică și FILE_SHARE_WRITE, care poate fi, de asemenea, combinate într-un singur parametru, dacă este necesar. Pentru a seta acțiuni cu fișierul sunt constante simbolice CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING, care nu pot fi combinate într-un singur parametru dwCreationDisposition. dar ar trebui să fie utilizate separat. CREATE_NEW Constant conduce la faptul că, în cazul în care există deja fișierul specificat, funcția returnează o eroare. CREATE_ALWAYS constantă impune crearea unui fișier este întotdeauna, chiar și pentru a înlocui una existentă, iar conținutul fișierului vechi este pierdut. OPEN_EXISTING Constant necesită deschide doar un fișier existent, în cazul în care acest fișier cu numele specificat nu există, funcția returnează o eroare. OPEN_ALWAYS Constant duce la faptul că un fișier existent este deschis, iar în cazul în care fișierul nu există, el este creat. TRUNCATE_EXISTING Constant conduce la următoarele acțiuni: dacă fișierul există, acesta este deschis, după care lungimea fișierului este setat la zero, conținutul fișierului este pierdut; dacă fișierul nu există, atunci funcția returnează o eroare.
CloseHandle este folosit pentru a închide fișierul. al cărui scop este mult mai larg decât funcțiile de închidere a fișierelor din alte sisteme de operare. Această funcție are un prototip
BOOL CloseHandle (HANDLE hObject),
unde în acest exemplu, în locul mânerului unui obiect arbitrar, se folosește mânerul fișierului. Valoarea booleană returnată de funcție vă permite să determinați dacă mânerul a fost închis.
Un exemplu de utilizare a funcțiilor considerate este ilustrat în următorul exemplu:
#define METODA 0