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

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

2020-2021 учебный год

Практические занятия

Практика 15
Копирование файлов с использованием WinAPI

1. Передать через аргументы командной строки имя файла-источника 
   и название файла-приемника. Вывести имена файлов в консоли. 

2. Выполнить копирование 1-го текстового и 1-го бинарного файлов 
   с использованием готовой функции копирования файлов
   из библитоеки API Win32.

3. Выполнить копирование 1-го текстового и 1-го бинарного файлов 
   без использования готовой функции копирования файлов
   c применением поблочного копирования с помощью функций 
   FileRead() и FileWrite() из библитоеки API Win32.

4. Изучить пример создания в API Win32 графического 
   окна приложения с кнопкой и статической надписью. 
   Настройте IDE Microsof Visual Studio для разработки 
   программ на языке программирования C, без использования C++.

5. Добаваить в приложение из примера кнопки Start И Stop.
   Обработчики кнопок должны выводить в статическую 
   надпись текст "Button clicked: Start" и "Button clicked: Stop"
   соответственно.

Справка:
Программирование на Си в Linux

Основные команды:
ls -l
mcedit test1.c
gcc test1.c
./a.out

1. Запуск Oracle VM VirtualBox.
2. Старт ubuntu2020_113.
3. Запуск Terminal.
4. В папке /home/test создать текстовый файл
в текстовом редакторе mcedit:
mcedit test.c
5. Набрать test.c, сохранить F2, выход из редактора F10.
#include <stdio.h>
int main() {
  printf("Test1 OK");
  return 0;
}

5. В теримнале перейти в папку /home/test:
cd ~/test
6. Проверить по списку файлов в папке наличие файла test.c.
В терминале вывести список файлов:
ls -l
7. В терминале cкомпилировать файл test.c
gcc test.c
8. Проверить по списку файлов, что после компиляции 
в папке test появился новый файл a.out.
В терминале вывести список файлов:
ls -l
9. Запустить на исполнение файл a.out.
В терминале набрать команду:
./a.out

Работа в консоли
1. Переключение в консоль: Ctrl + F3 или Alt + F3.
2. Возвращение в xWindow: Alt + F7

Компиляция в 2 этапа
gcc -c test.c
gcc test.o -o myprog1
./myprog1

Установка коллекции компиляторов GNU Compiler Collection, GCC.
sudo apt update
sudo apt upgrade
sudo apt install build-essential

Установка файлового менеджера Midnight Commander, mc, редактора mcedit
sudo apt update
sudo apt upgrade
sudo apt install mc

  1. PDF stolyarov.info — Программирование: введение в профессию. Том 2: низкоуровневое программирование.
  2. stolyarov.info — Программирование: введение в профессию. Том 2: низкоуровневое программирование.
  3. stolyarov.info — Основы программирования.
  4. stolyarov.info — Основы программирования.
  5. cs.mipt.ru — Хирьянов Т.Ф. Адреса и указатели в Си. Адресная арифметика.
  6. ru.cppreference.com — Справка по языкам программирования C и C++.
  7. znanium.com — Бабаев С.И. Операционные системы. Лабораторный практикум : учеб. пособие / С.И. Бабаев, С.В. Засорин. — М. : КУРС, 2018. — 240 с.