Programování ve Windows Andrea Číková Martin Osovský Dnes si probereme • Práce se vstupem a výstupem – Otevírání a zavírání zařízení – Soubory a adresáře – Čtení a zápis, synchronní a asynchronní – Zařízení typu klient server Vstupně výstupní zařízení • Souborový systém • Porty • Síťová zařízení • Konzole a okna • Pracuje se zase pomocí HANDLů – Podobné způsoby práce pro všechna zařízení – Možnost sdílení mezi procesy a počítači Důležité funkce • Skoro všechno se otvírá/vytváří pomocí CreateFile – Soubory, adresáře (CreateDirectory), disky, porty, klientské čaásti mailslotů a rour – Rozlišení podle jména a některých parametrů – Odlišují se operace • Sockety pomocí UNIXového API • Serverové části mají vlastní funkce (CreateNamedPipe) • Zavírání pomocí CloseHandle CreateFile • Jméno má speciální notaci pro různá zařízení (UNC cesta, COM1, \\server\pipe\jmeno) • Desired access – čtení, zápis etc. • Share mode – co mohou dělat ostatní • Creation – např. má se vytvořit, když neexistuje? • Flags and attributes – atributy jako HIDDEN, různé příznaky (OVERLAPPED, BACKUP_SEMANTICS) • Template file – vzor pro atributy Čtení a zápis • WriteFile a ReadFile • Synchronní a asynchronní • Čte se vždy po bytech • Systém udržuje aktuální pointer • Asynchronní – Struktura OVERLAPPED – Čekám na zasignálování handlu souboru nebo na event z OVERLAPPED – Čtení se neřídí pointerem, ale offsetem – Error code je součástí struktury Fukce pro práci se soubory a adresáři • Různé usnadňující funkce – CopyFile, MoveFile – GetFileAttributes – FindFirstFile, FindNextFile, FindClose (propojené handlem), struktura WIN32_FIND_DATA