Įvedimo ir išvedimo operacijos: darbas su failais
description
Transcript of Įvedimo ir išvedimo operacijos: darbas su failais
![Page 1: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/1.jpg)
Įvedimo ir išvedimo operacijos: darbas su failais
Martynas Maciulevičius IT2
![Page 2: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/2.jpg)
Turinys
• Failai „Windows“ sistemoje (GUI)• Failai „Windows API“• Paprastas failų IO• Memmory-Mapped failų IO• Asinchroninis failų IO• Handle
![Page 3: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/3.jpg)
Failai „Windows“ sistemoje
• Failų tipai• Failų atributai
a.txt
![Page 4: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/4.jpg)
Handle‘ai
• Handle – abstrakti nuoroda į resursą• Handle naudojimas Windows’uose
Le handle
![Page 5: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/5.jpg)
Handle naudojimas
DWORD WINAPI GetFileSize( HANDLE hFile,
- LPDWORD lpFileSizeHigh );
![Page 6: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/6.jpg)
Failų kūrimas
HANDLE WINAPI CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, //rwxDWORD dwShareMode, //rw0
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition, //->DWORD dwFlagsAndAttributes, //->>
- HANDLE hTemplateFile);
![Page 7: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/7.jpg)
DWORD dwCreationDisposition
• CREATE_ALWAYS• CREATE_NEW• OPEN_ALWAYS• OPEN_EXISTING• TRUNCATE_EXISTING //(only with w)
![Page 8: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/8.jpg)
DWORD dwFlagsAndAttributes
• FILE_ATTRIBUTE_HIDDEN• FILE_ATTRIBUTE_NORMAL• FILE_ATTRIBUTE_READONLY• FILE_ATTRIBUTE_TEMPORARY• ...
![Page 9: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/9.jpg)
Failo skaitymas / rašymas
BOOL WINAPI WriteFile( //ReadFile
HANDLE hFile, LPCVOID lpBuffer, //
buferisDWORD nNumberOfBytesToWrite, // Read
- LPDWORD lpNumberOfBytesWritten,// Read- LPOVERLAPPED lpOverlapped);
![Page 10: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/10.jpg)
Failo uždarymas
BOOL WINAPI CloseHandle(HANDLE hObject
);
![Page 11: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/11.jpg)
Memmory-Mapped būdas
• Nuskaitomas pilnas failas• Reikšmės atmintyje pakeičiamos• Įrašoma• Gerai ar blogai?
![Page 12: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/12.jpg)
Overlapped skaitymo būdas
• Sinchroninis: kai skaitoma paprastai // up• Asinchroninis: „užsakoma“ ir po nuskaitymo
gaunamas pranešimasBOOL WINAPI WriteFile( //ReadFile
HANDLE hFile, LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped
);
H ->
![Page 13: Įvedimo ir išvedimo operacijos: darbas su failais](https://reader035.fdocuments.net/reader035/viewer/2022062309/56813a38550346895da2221a/html5/thumbnails/13.jpg)
Klausimai