
- •Лабораторная работа № 1 аргументы и опции программы. Функция getopt(). Знакомство с отладчиком gdb
- •Программа выполнения работы.
- •Отладчик gdb
- •Компиляция для отладки
- •Вход-выход
- •Команды gdb
- •Получение справки
- •Начало выполнения отлаживаемой программы
- •Настройки среды
- •Рабочий каталог отлаживаемой программы
- •Ввод и вывод отлаживаемой программы
- •Часто используемые команды
- •Варианты заданий
- •Контрольные вопросы.
- •Составить отчет
- •Варианты заданий.
- •Контрольные вопросы
- •Лабораторная работа № 3 ввод/вывод в linux. Обработка ошибок
- •Программа работы
- •Составить отчет Краткая теория.
- •Системные вызовы
- •Обработка ошибок.
- •Варианты заданий
- •Варианты:
- •Контрольные вопросы
- •Составить отчет.
- •Варианты заданий
- •Составить отчет.
- •Варианты заданий.
- •Составить отчет. Краткая теория.
- •Создание и удаление каталогов
- •Чтение каталогов
- •Варианты заданий.
- •Контрольные вопросы.
Варианты:
1. Для создания использовать системный вызов open(2);
права доступа: 760
ошибки:
открывает для чтения несуществующий файл;
открывает для записи существующий файл, который удалять нельзя;
при чтении аргумент fildes является некорректным (искусственно его следует испортить или ввести с клавиатуры не верное значение);
2. Для создания использовать системный вызов creat(2);
права доступа: 744
ошибки:
открывает для чтения файл, не имея права доступа на чтение;
открывает для записи файл, у которого в имени присутствует элемент, не являющийся каталогом;
при записи аргумент fildes является не корректным (искусственно его следует испортить или ввести с клавиатуры не верное значение);
3. Для создания использовать системный вызов open(2);
права доступа: 666
ошибки:
открывает для чтения файл, который является каталогом (при исправлении ввести корректное имя файла);
открывает для записи уже существующий файл, который удалять нельзя;
при закрытии аргумент fildes является не корректным (искусственно его следует испортить или ввести с клавиатуры не верное значение);
4. Для создания использовать системный вызов creat(2);
права доступа: 740
ошибки:
открывает для чтения файл, к которому не имеет доступа;
открывает для записи уже существующий файл, который удалять нельзя;
при закрытии аргумент fildes является не корректным (искусственно его следует испортить или ввести с клавиатуры не верное значение);
5. Для создания использовать системный вызов open(2);
права доступа: 777
ошибки:
открывает для чтения файл, к которому не имеет доступа;
открывает для записи файл, к которому не имеет доступа
при записи происходит превышение допустимого размера файлов [реализуйте многократное копирование и см. ulimit(2)].
6. Для создания использовать системный вызов creat(2);
права доступа: 644
ошибки:
открывает для чтения несуществующий файл;
открывает для записи уже существующий файл, который удалять нельзя;
при записи происходит превышение допустимого размера файлов [реализуйте многократное копирование и см. ulimit(2)].
Контрольные вопросы
По каким причинам могут возникать ошибки в программах (перечислите не менее 5 причин)?
Как определить, что в программе произошла ошибка? Как определить, какая именно ошибка имеет место?
Что такое дескриптор файла? Для чего он нужен операционной системе?
Какие дескрипторы зарезервированы в UNIX и для чего?
В каком случае число, возвращаемое функцией read (2) будет меньше запрошенного? Почему эту ситуацию необходимо отслеживать в программе?
В каком случае число, возвращаемое функцией write (2) будет меньше запрошенного? Почему эту ситуацию необходимо отслеживать в программе?
Почему при копировании файлов с помощью read (2) и write (2) следует проверять значения, возвращаемые этими функциями на равенство?
ЛАБОРАТОРНАЯ РАБОТА № 4
ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ФАЙЛЕ. ФУНКЦИЯ stat() И lstat()
Цель работы: Изучить функции stat() и lstat(). Научиться получать о файле информацию.
Программа выполнения работы