13
Įvedimo ir išvedimo operacijos: darbas su failais Martynas Maciulevičius IT2

Įvedimo ir išvedimo operacijos: darbas su failais

  • 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

Page 1: Įvedimo ir išvedimo operacijos: darbas su failais

Įvedimo ir išvedimo operacijos: darbas su failais

Martynas Maciulevičius IT2

Page 2: Įvedimo ir išvedimo operacijos: darbas su failais

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

Failai „Windows“ sistemoje

• Failų tipai• Failų atributai

a.txt

Page 4: Įvedimo ir išvedimo operacijos: darbas su failais

Handle‘ai

• Handle – abstrakti nuoroda į resursą• Handle naudojimas Windows’uose

Le handle

Page 5: Įvedimo ir išvedimo operacijos: darbas su failais

Handle naudojimas

DWORD WINAPI GetFileSize( HANDLE hFile,

- LPDWORD lpFileSizeHigh );

Page 6: Įvedimo ir išvedimo operacijos: darbas su failais

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

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

DWORD dwFlagsAndAttributes

• FILE_ATTRIBUTE_HIDDEN• FILE_ATTRIBUTE_NORMAL• FILE_ATTRIBUTE_READONLY• FILE_ATTRIBUTE_TEMPORARY• ...

Page 9: Įvedimo ir išvedimo operacijos: darbas su failais

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

Failo uždarymas

BOOL WINAPI CloseHandle(HANDLE hObject

);

Page 11: Įvedimo ir išvedimo operacijos: darbas su failais

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

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

Klausimai