Лабораторная Работа № 5. Работа с файлами в UNIX. Цель работы. Задание. 1. 2. Последовательность выполнения работы. 1. Задание. В отчете отразите возможные опции gcc.
ЛАБОРАТОРНАЯ РАБОТА № 5. Работа с файлами в UNIX ЦЕЛЬ РАБОТЫ Целью работы является освоение навыков компиляции программ на языке С в UNIX и запуск их на счет, а также системные выводы getuid и getid и библиотеки libc.
ЗАДАНИЕ
1. Задание. В отчете отразите возможные опции gcc. 2. Задание. Написание, компиляция и запуск программы c использованием системных вызовов getuid() и getgid(). 3. Напишите, откомпилируйте и запустите программу, которая печатала бы идентификатор пользователя, запустившего программу, и идентификатор его группы.
1. 2. ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ
1. Задание. В отчете отразите возможные опции gcc.
Обычная компиляция *. c файла
Вывод информации о файле исходного кода и исполняемого
Использование опции –o в команде gcc и, соответсвенно, переименование исполняемого файла в свой (lab5v2)
Воспользовавшись опцией –E дальнейшее действия gcc можно прервать и посмотреть содержимое файла, обработанного препроцессором.
Следующий этап операция ассемблирования - трансляция кода на языке ассемблера в машинный код. Результат операции - объектный файл. Опция gcc -c, останавливает процесс по завершении этапа ассемблирования:
Опция -Wall - выводит предупреждения, вызванные потенциальными ошибками в коде, не препятствующими компиляции программы, но способными привести, по мнению компилятора, к тем или иным проблемам при её исполнении. Важная и полезная опция, разработчики gcc рекомендуют пользоваться ей всегда.
Опция -Werror - превращает все предупреждения в ошибки. В случае появления предупреждения прерывает процесс компиляции. Используется совместно с опцией -Wall.
Опции -O1, -O2, -O3 - задают уровень оптимизации кода генерируемого компилятором. С увеличением номера, степень оптимизации возрастает. Компиляция с уровнем оптимизации по умолчанию:
Компиляция с максимальным уровнем оптимизации:
2. Задание. Написание, компиляция и запуск программы c использованием системных вызовов getuid() и getgid(). 3. Напишите, откомпилируйте и запустите программу, которая печатала бы идентификатор пользователя, запустившего программу, и идентификатор его группы.
Вывод:
Научились использовать опции для компиляции программ на языке С в UNIX и их запуск. Также изучили новые системные вызовы getuid() и getgid(), с помощью которых можно узнать номер пользователя и номер группы в системе.
Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Южно-Уральский государственный университет» (национальный исследовательский университет) Институт естественных и точных наук Факультет математики, механики и компьютерных технологий Кафедра прикладной математики и программирования
ОТЧЕТ К ЛАБОРАТОРНОЙ РАБОТЕ №6 по дисциплине операционные системы
Челябинск 2019 ЛАБОРАТОРНАЯ РАБОТА № 6. Работа с файлами в UNIX ЦЕЛЬ РАБОТЫ План занятия Теоретическая часть работы 1. Понятие процесса в UNIX, его контекст. 2. Идентификация процесса. 3. Состояния процесса. Краткая диаграмма состояний. 4. Иерархия процессов. 5. Системные вызовы getpid(), getppid(). 6. Создание процесса в UNIX. Системный вызов fork().
7. Завершение процесса. Функция exit(). 8. Параметры функции main() в языке С. Переменные среды и аргументы командной строки. 9. Изменение пользовательского контекста процесса. Семейство функций для системного вызова exec().
Практические работы 1. Написание, компиляция и запуск программы с системными вызовами getpid() и getppid(). 2. Прогон программы с использованием вызова fork(), где порожденный процесс делает то же самое, что и родитель. 3. Написание, компиляция и запуск программы с использованием вызова fork() с разным поведением процессов ребенка и родителя. 4. Написание, компиляция и запуск программы с распечаткой значений переменных среды и аргументов командной строки. 5. Прогон программы с использованием системного вызова exec(). 6. Написание, компиляция и запуск программы для изменения пользовательского контекста в порожденном процессе.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|