Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... ·...

18
1 Тема: Файлы" Лекция №3 Учебные вопросы: 1. Создание файла с именем. 2. Установка и чтение указателей файла. 3. Запуск внешнего файла. 4. Программы для закрепления материала. 5. Файловые операции средствами ShellAPI. Презентация не содержит весь материал лекции. И, поэтому, не может заменить посещение лекции студентом Лектор: к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич [email protected], http://blogs.kpi.kharkov.ua/v2/asm/ «Системное программирование» НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ “Харьковский политехнический институт” Кафедра “Вычислительная техника и программирование” Специальность 123 – «Компьютерная инженерия»; специализации: 123-01 «Компьютерные системы и сети»; 123-02 «Системное программирование»; 123-03 «Программирование компьютерных игр и мобильных приложений»; Специальность 125 – «Кибербезопасность» Литература: (вся информация на сайте http://blogs.kpi.kharkov.ua/v2/asm/knigi) 1. Рысованый АН. Системное программирование, Ч.1. Программирование в среде masm64 : учеб. -метод. пособие / А.Н. Рысованый. – Харьков : «Слово», 2017. – 108 с.– На рус. яз. 2. Рысованый А.Н. Системное программирование, Ч.2. Расширенные возможности программирования в среде masm64 : учеб.-метод. пособие / А.Н. Рысованый. – Харьков : «Слово», 2017. – 140 с. – На рус. яз. 3. http://blogs.kpi.kharkov.ua/v2/asm/knigi/ 4. masm32.com сайт Steve Hutchesson 5. wasm.in - сайт Mikl___

Upload: others

Post on 13-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

1

Тема: “Файлы"

Лекция №3

Учебные вопросы:

1. Создание файла с именем.

2. Установка и чтение указателей файла.

3. Запуск внешнего файла.

4. Программы для закрепления материала.

5. Файловые операции средствами ShellAPI.

Презентация не содержит весь материал

лекции. И, поэтому, не может заменить

посещение лекции студентом

Лектор: к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

[email protected], http://blogs.kpi.kharkov.ua/v2/asm/

«Системное программирование»

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

“Харьковский политехнический институт”

Кафедра “Вычислительная техника и программирование”Специальность 123 – «Компьютерная инженерия»;

специализации:

123-01 «Компьютерные системы и сети»;

123-02 «Системное программирование»;

123-03 «Программирование компьютерных игр и мобильных приложений»;

Специальность 125 – «Кибербезопасность»

Литература: (вся информация на сайте http://blogs.kpi.kharkov.ua/v2/asm/knigi)1. Рысованый АН. Системное программирование, Ч.1. Программирование в среде masm64 : учеб.-метод. пособие /

А.Н. Рысованый. – Харьков : «Слово», 2017. – 108 с.– На рус. яз.

2. Рысованый А.Н. Системное программирование, Ч.2. Расширенные возможности программирования в среде masm64

: учеб.-метод. пособие / А.Н. Рысованый. – Харьков : «Слово», 2017. – 140 с. – На рус. яз.

3. http://blogs.kpi.kharkov.ua/v2/asm/knigi/

4. masm32.com – сайт Steve Hutchesson

5. wasm.in - сайт Mikl___

Page 2: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

2

title создание и запись в файл; masm64include win64a.inc.data

BSIZE1 equ 80 ; количество байтов, которые записываются в файл fName BYTE "File-1m.txt",0 ; имя файлаfHandle dq ? ; дескриптор хранения файловcWritten dq ? ; ячейки для адреса символов выводаfmt db "%d",0 ; задание преобразования символаBuf1 dq 10 dup(1) ; резервирование памяти для буфера и первоначальное заполнениеlen1 equ ($-Buf1)/type Buf1 ; количество 64-разрядных чисел буфера.code WinMain procsub rsp,28h; выравнивание стека 28h=40d=32d+8; 8 - возвратmov rbp,rsplea rdi,Buf1 ; переписывание адреса для последующего обращенияmov r13,1 ; первое значениеmov r14,len1 ; загрузка счетчика@1: invoke wsprintf,ADDR [rdi],ADDR fmt,r13 ; преобразование r13add rdi,type Buf1 ; увеличение значения rdi для следующего адресаinc r13 ; получение нового значения в r13dec r14 ; вычитание из счетчика единицыjnz @1 ; переход на метку, если не нольinvoke CreateFile,ADDR fName, GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0mov fHandle,rax ; сохранение дескриптора файлаinvoke WriteFile,fHandle,ADDR Buf1,BSIZE1,ADDR cWritten,0; чтениеinvoke CloseHandle, fHandle ; закрыть дескриптор файлаinvoke ExitProcess, 0

WinMain endp

end

Получение и вывод в консоль

чисел от 1 до 10

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

1. Создание файла с именем

Page 3: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

2. Установка и чтение указателей файла.

include win64a.inc

.data

_file1 db "File-2-1.txt",0

_file2 db "File-2-2.txt",0

hFile01 HANDLE ?

hFile02 HANDLE ?

from_file db 4096 dup(?)

read_by_file dq ?

write_by_file dq ?

file01_size dq ?

file02_size dq ?

title1 db "Добавление одного файла в конец другого",0

msg1 db "Ошибка! Файл 'File-2-1.txt' не доступен!",0

msg2 db "Размер файла 'File-2-2.txt': %d,",10,"Размер файла 'File2-64-2-2.txt': %d.",10,

"Считано байт: %d, записано байт: %d.",10,10,

"Рысованый А.Н., НТУ ХПИ, каф. ВТП",0

buf dq 0

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

Page 4: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

4

.codeWinMain procsub rsp,28h; выравнивание стека 28h=40d=32d+8; 8 - возвратmov rbp,rsp

invoke CreateFile,addr _file1,GENERIC_READ,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0

mov hFile01,rax ; сохранение дескриптора файла.if hFile01 == INVALID_HANDLE_VALUE ; если CreateFile возвращает ошибку

invoke MessageBox,0,addr msg1,addr title1,0 ; сообщение об ошибке.endif; Открытие второго файла для записиinvoke CreateFile,addr _file2,GENERIC_WRITE,FILE_SHARE_READ,0, OPEN_ALWAYS,

FILE_ATTRIBUTE_NORMAL,0mov hFile02,rax ; сохранение дескриптора файлаinvoke GetFileSize,hFile01,0 ; получение размера файла 01mov file01_size,raxinvoke GetFileSize,hFile02,0 ; получение размера файла 02mov file02_size,rax

; Установка указателя на конец файлаinvoke SetFilePointer,hFile02,0,0,FILE_END

; Чтение из файла и запись в from_fileinvoke ReadFile,hFile01,addr from_file,file01_size,addr read_by_file,0

; Запись в файл (конец) из from_fileinvoke WriteFile,hFile02,addr from_file,read_by_file,addr write_by_file,0

; Преобразование данных и вывод (информация работы программы и автор)invoke wsprintf,addr buf,addr msg2,file01_size,file02_size,read_by_file,write_by_fileinvoke MessageBox,0,addr buf,addr title1,MB_ICONINFORMATIONinvoke ExitProcess,0WinMain endpend

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

Page 5: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

5

title перезапись данных с массива в файл; masm64

include win64a.inc

.data

mas1 dq 1,4,6,3ah,3bh

mas2 dq 5 dup(?)

len1 equ ($-mas2)/type mas2

BSIZE1 equ 40 ; кол. байтов, которые записываются в файл

fName BYTE "File-3.txt",0 ; имя файла

fHandle dq ? ; дескриптор хранения файлов

cWritten dq ? ; ячейки для адреса символов вывода

fmt db "%d",0 ; задание преобразования символа

szFileName db "c:\masm64\bin\File-3-sms.exe",0

.code

Данные одного массива переписать в другой массив, вывести

данные нового массива и запустить внешний файл

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

3. Запуск внешнего файла.

Page 6: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

6

.code WinMain proc

sub rsp,28h; выравнивание стека 28h=40d=32d+8; 8 - возврат

mov rbp,rsp

mov r11,len1 ; len1=5lea rsi,mas1 ; занесение адреса начала элементов массива mas1lea rdi,mas2 ; занесение адреса массива результата mas2

@1: mov r15,[rsi] push r11 ; сохранение в стеке аеред выполнением wsprintf

invoke wsprintf,ADDR [rdi],ADDR fmt,r15pop r11 ; возврат из стекаadd rsi,type mas1add rdi,type mas2 ;8dec r11jnz @1

invoke CreateFile,ADDRfName,GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0mov fHandle,raxinvoke WriteFile,fHandle,ADDR mas2,BSIZE1,ADDR cWritten,0; ;invoke CloseHandle, fHandle ; закрыть дескриптор файлаinvoke WinExec,addr szFileName,SW_SHOWinvoke ExitProcess, 0 WinMain endpend

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

Page 7: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

7

title вывод текста в MessageBox; masm64

include win64a.inc

.data

titl db "Сообщение о завершении программы",0; название упрощенного окна

inf1 db "Программа запущена как внешняя через", 10,

"invoke WinExec,addr szFileName,SW_SHOW в masm64",10,10,

"Автор программы: Рысованый А.Н., каф. ВТП, НТУ ХПИ",0

.code

WinMain proc

sub rsp,28h; выравнивание стека 28h=40d=32d+8; 8 - возврат

mov rbp,rsp

invoke MessageBox,0,addr inf1,addr titl, MB_ICONINFORMATION;

invoke ExitProcess, 0

WinMain endp

end

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

Внешний файл

Page 8: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

8

title создание файла, запись в нее данных и просмотр в блокноте; masm64

include win64a.inc

.data

fName BYTE "File-4.txt",0 ; имя файла

fName2 BYTE "notepad C:\masm64\bin\File-4.txt",0 ; имя файла

inf1 db "Задача успешно решена",0 ;

titl1 db "Сообщение о завершении",0 ;

BSIZE equ 16 ; размер буфера для вывода чисел (а если 9?)

mas1 dq 10,12 ; массив чисел для записи в файл

len1 equ ($-mas1)/type mas1

fmt db "%d",0 ; для преобразование числа перед выводом

cWritten dq ? ;

buf1 dq 2 dup(0) ; буфер для массива при выводе

hFile dq ?,0 ; дескриптор файла

.code

WinMain proc

sub rsp,28h;

mov rbp,rsp

lea r13,buf1 ; загрузка адреса массива вывода чисел

lea r12,mas1 ; загрузка адреса массива исходных чисел

mov r15,len1 ; загрузка счетчика чисел массива mas1

@1: ; начало цикла преобразования чисел массива mas1

mov r10,[r12] ; загрузка числа из массива mas1

invoke wsprintf,ADDR [r13],ADDR fmt,r10 ; преобразование

add r12,8 ; увеличение адреса mas1

add r13,type buf1 ; увеличение адреса buf1

dec r15 ; уменьшение счетчика на 1

jnz @1 ; перейти на метку, если не ноль

invoke CreateFile,ADDR fName,GENERIC_WRITE,

0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0

mov hFile,rax ;

invoke WriteFile,hFile,ADDR buf1,BSIZE,ADDR

cWritten,0; чтение

invoke CloseHandle,hFile; закрыть дескриптор

(обязательно)

invoke MessageBoxTimeout,0,addr inf1,addr titl1,

MB_OK,0,1500

invoke WinExec,addr fName2,SW_SHOWinvoke ExitProcess, 0WinMain endpend

4. Программы для закрепления материала

Page 9: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

9

Для временного вывода сообщения ограниченного время

используется недокументированная функция

MessageBoxTimeout, которая имеет такой синтаксис:

invoke MessageBoxTimeout, \ ; вывод ограниченного времени сообщения

hWnd, \; хендл окна

lpText, \; адрес строки, который содержит текст сообщения

lpCaption, ; адрес строки, который содержит заголовок сообщения

uType, \ ; вид диалогового окна

wLanguageId, \; язык сообщения

dwMilliseconds; миллисекунды отображения окна

Page 10: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

10

Для функции Y = 40Х + 10 получить первое значение, которое превышает 512,

начиная с Х = 1. Вывести значение аргумента и функции.

title создание и запись в файл; masm64include win64a.inc ; библиотеки для подключенияBSIZE equ 10.dataconst1 dq 512const2 dq 10const3 dq 40const5 dq 0x1 dq 1fName BYTE "Lab_FILE.txt",0fHandle dq ? ;cWritten dq ? ;hFile dq ?,0

buf dq 0fmt db "Для функции Y = 40Х + 10 получить первое значение, которое превышает 512, начиная с Х = 1. ", "Вывести значение аргумента и функции.",10,10, "При х = %d функция Y = 40Х + 10 = %d ",10, 10,"Автор: проф. каф. ВТП Рысованый А.Н.,НТУ ХПИ",0titl1 db " masm64. Файлы",0

szFileName db "C:\Masm64\bin\File-3-sms.exe",0buf2 dq 0,0fmt2 db "%d",0.code

Page 11: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

11

WinMain proc

sub rsp,28h; выравнивание стека 28h=32d+8; 8 — возврат

mov rbp,rsp

m1: mov rax,const3

mul x1

add rax,const2; 40x+10

mov const5,rax

cmp rax,const1 ; сравнение с 512

jnc exit ; перейти, если >

inc x1 ; увеличить счетчик аргумента Х

jmp m1 ;

exit:

invoke WinExec,addr szFileName,SW_SHOW;

invoke wsprintf,addr buf,addr fmt,x1,const5

invoke MessageBox,0,addr buf,addr titl1,MB_ICONINFORMATION

invoke wsprintf,addr buf2,addr fmt2,x1

invoke CreateFile,ADDR fName,GENERIC_WRITE, 0,0, CREATE_ALWAYS,

FILE_ATTRIBUTE_ARCHIVE,0

mov fHandle, rax;

invoke WriteFile,fHandle,ADDR buf2,BSIZE,ADDR cWritten,0

invoke CloseHandle,fHandle

invoke ExitProcess,0

WinMain endp

end

Page 12: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

12

5. Файловые операции средствами ShellAPI

12

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич, [email protected]

Page 13: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

1313

SHFileOperation

Выполняет операцию копирования, перемещения, переименования или удаления над

объектом файловой системы.

WINSHELLAPI int WINAPI SHFileOperation (

LPSHFILEOPSTRUCT lpFileOp

);

Параметры

lpFileOp - указатель на структуру типа SHFILEOPSTRUCT , содержащую информацию,

необходимую функции для выполнения операции.

Возвращаемые значения

В случае успеха возвращается нуль, ненулевое значение в противном случае.

Функция SHFileOperation позволяет визуализировать процесс выполнения

файловой операции

Параметры файловой операции задаются установкой значений структуры

SHFILEOPSTRUCT, указатель на которую передается функции.typedef struct

_SHFILEOPSTRUCT{

HWND hwnd; // хэндл окна-владельца диалога

UINT wFunc; // тип файловой операции

LPCTSTR pFrom; // путь-источник

LPCTSTR pTo; // путь-назначение

FILEOP_FLAGS fFlags; // флаги операции

BOOL fAnyOperationsAborted; // признак прерванной операции

LPVOID hNameMappings;

LPCSTR lpszProgressTitle; // заголовок диалога

} SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

Page 14: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

1414

Тип файловой операции задается полем wFunc и может принимать значения

FO_COPY, FO_DELETE, FO_MOVE и FO_RENAME.

Поле fFlags может содержать большое количество разнообразных флагов,

изменяющихся в зависимости от типа выполняемой операции и необходимого

поведения функции.

Так флаг FOF_SILENT позволяет подавить вывод диалога, отображающего

выполнение файловой операции во времени (прогресс-диалога), флаг

FOF_NOCONFIRMATION подавляет вывод запросов на подтверждение

выполнения файловой операции, флаг FOF_NOCONFIRMMKDIR подавляет

вывод запросов на подтверждение создания каталогов во время выполнения

копирования и перемещения каталогов, флаг FOF_NOERRORUI подавляет

вывод сообщений об ошибках, возникших во время выполнения операции,

флаг FOF_NORECURSION позволяет выполнить операцию только с

содержимым указанного каталога, флаг FOF_SIMPLEPROGRESS позволяет

отображение прогресс-диалога без вывода имен файлов и каталогов, с

которыми производится операция (пример применения функции

SHFileOperation( ).

Кроме того, функция SHFileOperation( ) позволяет выполнить удаление файла в

"Корзину". Для этого необходимо к набору флагов добавить флаг

FOF_ALLOWUNDO и обязательно указать полный путь к файлу в поле pFrom.

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

Page 15: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

15

Пример. Перезапись файлов с расширением .asm:title создание папки и запись в нее; masm64include win64a.inc.data _SHFILEOPSTRUCT struc ; тип данныхhwnd dq ? ; дескриптор окнаwFunc dq ? ; операция, которая выполняетсяpFrom dq ? ; адрес cтроки с названием файлаpTo dq ? ; адрес строки с указанием папкиfFlags dq ? ;fAnyOperationsAborted dq ? ;hNameMappings dq ?lpszProgressTitle dq ?_SHFILEOPSTRUCT endsFile db "c:\masm64\bin\*.asm",0,0; ; путь с двумя нулевыми байтамиDir db "c:\x", 0 ; путь создания папки shf _SHFILEOPSTRUCT <0,\ ; hwnd хэндл окна

FO_COPY,\ ; копирует файлы, указанные в File в папку, указанную в DirFile,\ ; указатель на буфер, который содержит пути к файлам

Dir, \ ; путь к адресатуFOF_FILESONLY,\ ; выполняет операцию для файлов с маской

0, 0, 0 > ; признак операции, которую прервали и заглавие окна.code WinMain proc

sub rsp,28hmov rbp,rsp

invoke SHFileOperation,addr shfinvoke RtlExitUserProcess,0 ;!!!!!WinMain endpend

15

Ни в коем случае не создавайте на с:\ папку « Windows» с пропуском в

первой позиции. Эта папка разместится в каталоге первой и с нее

будет грузиться ОС. А ее там нет! При перезагрузке ОС не будет

грузиться!!!

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

Page 16: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

16

; GUI #

include win64a.inc

.data

_SHFILEOPSTRUCT struc ; тип данных

hwnd dq ? ; дескриптор окна

wFunc dq ? ; операция, которая выполняется

pFrom dq ? ; адрес cтроки с названием файла

pTo dq ? ; адрес строки с указанием папки

fFlags dq ? ;

fAnyOperationsAborted dq ? ;

hNameMappings dq ?

lpszProgressTitle dq ?

_SHFILEOPSTRUCT ends

File db "c:\Temp1",0,0; ; путь с двумя нулевыми байтами

shf _SHFILEOPSTRUCT <0,FO_DELETE,File,0,FOF_FILESONLY,0,0,0>

.code

WinMain proc

sub rsp,28h

mov rbp,rsp

invoke SHFileOperation,addr shf

invoke RtlExitUserProcess,0 ;!!!!!

WinMain endp

end

Пример. Удаление папки

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

Page 17: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

17

Задание на дом.

1. Создание файла из удвоенного одного файла.

2. Создание нового файла из содержимого трех файлов.

3. Создание пяти файлов с содержимым из известного файла.

4. Создать два файла: в первый записать содержимое

1 + 2 файлов, а во второй – 2 + 1 файлов.

5. Создать два файла: в первый записать содержимое

1 + 2 + 3 файлов, а во второй – 3 + 2 + 1 файлов.

6. Создать директорию (CreateDirectoryEx) и записать

в нее файл.szDirName db "C:\MyFolder",0

invoke CreateDirectory, ADDR szDirName, NULL

7. Переименовать директорию (RenameDirectory) и записать

в нее файл.

8. Запуск поиска файла в указанной директории (FindFirstFile).

9. Вывести текущую директорию, с которой работает программа.

10. Создать директорию (CreateDirectoryEx) и записать

в нее содержимое двух файлов

1. CreateFile

2. OpenFile

3. ReadFile

4. WriteFile

5. CloseFile

6. DeleteFile

7. CopyFile

8. FindFirstFile

9. FindNextFile

10. GetFileSize

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич

Выслать мне на email: [email protected] с указанием фамилии и группы

Page 18: Лекция №3 - blogs.kpi.kharkov.uablogs.kpi.kharkov.ua/v2/asm/wp-content/uploads/... · Лекция №3 Учебные вопросы: 1. ... Презентация не содержит

18

«Системное программирование»

к.т.н., проф. НТУ ХПИ Рысованый Александр Николаевич,

[email protected], [email protected]

личный сайт: http://blogs.kpi.kharkov.ua/v2/asm/

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

“Харьковский политехнический институт”

Кафедра “Вычислительная техника и программирование”

Специальность 123 – «Компьютерная инженерия»;

специализации:

123-01 «Компьютерные системы и сети»;

123-02 «Системное программирование»;

123-03 «Программирование компьютерных игр и мобильных приложений»;

Специальность 125 – «Кибербезопасность»