Upload
helki
View
44
Download
0
Embed Size (px)
DESCRIPTION
Įvedimo ir išvedimo operacijos: darbas su failais. Martynas Maciulevičius IT2. Turinys. Failai „Windows“ sistemoje (GUI) Failai „Windows API“ Paprastas failų IO Memmory-Mapped failų IO Asinchroninis failų IO Handle. Failai „Windows“ sistemoje. Failų tipai Failų atributai a . txt. - PowerPoint PPT Presentation
Citation preview
Įvedimo ir išvedimo operacijos: darbas su failais
Martynas Maciulevičius IT2
Turinys
• Failai „Windows“ sistemoje (GUI)• Failai „Windows API“• Paprastas failų IO• Memmory-Mapped failų IO• Asinchroninis failų IO• Handle
Failai „Windows“ sistemoje
• Failų tipai• Failų atributai
a.txt
Handle‘ai
• Handle – abstrakti nuoroda į resursą• Handle naudojimas Windows’uose
Le handle
Handle naudojimas
DWORD WINAPI GetFileSize( HANDLE hFile,
- LPDWORD lpFileSizeHigh );
Failų kūrimas
HANDLE WINAPI CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, //rwxDWORD dwShareMode, //rw0
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition, //->DWORD dwFlagsAndAttributes, //->>
- HANDLE hTemplateFile);
DWORD dwCreationDisposition
• CREATE_ALWAYS• CREATE_NEW• OPEN_ALWAYS• OPEN_EXISTING• TRUNCATE_EXISTING //(only with w)
DWORD dwFlagsAndAttributes
• FILE_ATTRIBUTE_HIDDEN• FILE_ATTRIBUTE_NORMAL• FILE_ATTRIBUTE_READONLY• FILE_ATTRIBUTE_TEMPORARY• ...
Failo skaitymas / rašymas
BOOL WINAPI WriteFile( //ReadFile
HANDLE hFile, LPCVOID lpBuffer, //
buferisDWORD nNumberOfBytesToWrite, // Read
- LPDWORD lpNumberOfBytesWritten,// Read- LPOVERLAPPED lpOverlapped);
Failo uždarymas
BOOL WINAPI CloseHandle(HANDLE hObject
);
Memmory-Mapped būdas
• Nuskaitomas pilnas failas• Reikšmės atmintyje pakeičiamos• Įrašoma• Gerai ar blogai?
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 ->
Klausimai