Н.В. Вдовикина, И.В. Машечкин, А.Н. Терехин, В.В. Тюляева - Программирование в ОС UNIX на языке Си
Описание файла
PDF-файл из архива "Н.В. Вдовикина, И.В. Машечкин, А.Н. Терехин, В.В. Тюляева - Программирование в ОС UNIX на языке Си", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Московский Государственный Университет имени М.В. ЛомоносоваФакультет вычислительной математики и кибернетикиН.В.Вдовикина, И.В.Машечкин, А.Н.Терехин,В.В.ТюляеваПрограммирование в ОС UNIX на языке Си(учебно-методическое пособие)Москва2009УДК 681.3.06ББК 32.973-018.2C40Пособие подготовлено авторами на основании практического опытаиспользования и преподавания языка Си на факультете ВМиК. В данномпособии предложены методические рекомендации по проведениюсеминарских занятий по программированию, поддерживающих курс лекций«Операционные системы», читаемый в третьем семестре на факультетеВМиК МГУ.При подготовке пособия использованы задачи из «Сборника задач иупражнений по языку Си» Руденко Т.В..УДК 681.3.06ББК 32.973-018.2Рецензенты:член-корр.
РАН Л.Н.КоролевдоцентЕ.А.КузьменковаВдовикина Н.В., Машечкин И.В., Терехин А.Н., Тюляева В.В.С40 Программирование в ОС UNIX на языке Си: учебно-методическоепособие.Издательский отдел факультета ВМиК МГУ 2009, - 101 c.Печатается по решению Редакционно-издательского Совета факультетавычислительной математики и кибернетики МГУ им. М.В. ЛомоносоваISBN 978-5-89407-354-5© Издательский отдел факультета вычислительнойкибернетики МГУ имени М.В. Ломоносова, 2009математикииВведение _________________________________________________ 6ТЕМА 1.
Краткая характеристика языка. Базовые типы данных иоперации с ними ___________________________________________ 7Базовые типы данных ____________________________________________ 7Переменные и константы _________________________________________ 7Операции над базовыми типами ___________________________________ 9Приведение типов ______________________________________________ 10Упражнения ____________________________________________________ 12ТЕМА 2. Операторы управления ____________________________ 13Условный оператор if-else________________________________________ 13Переключатель switch ___________________________________________ 14Операторы цикла while и do-while ________________________________ 14Оператор цикла for _____________________________________________ 15Операторы break и continue ______________________________________ 16Упражнения ____________________________________________________ 16ТЕМА 3.
Понятие функции. Общая структура программы. Областивидимости и существования переменных _____________________ 18Понятие функции _______________________________________________ 18Возвращаемое значение _________________________________________ 18Прототипы функций ____________________________________________ 19Список параметров переменной длины____________________________ 20Общая структура программы ____________________________________ 22Область видимости переменных __________________________________ 22Область существования переменных ______________________________ 241.
Статические переменные ____________________________________________ 242. Автоматические переменные ________________________________________ 253. Регистровые переменные ___________________________________________ 26Стековый кадр _________________________________________________ 27Упражнения ____________________________________________________ 28ТЕМА 4. Указатели и массивы ______________________________ 29Указатели и операции с ними ____________________________________ 29Нетипизированные указатели ____________________________________ 30Понятие массива________________________________________________ 30Инициализация массивов ________________________________________ 31Указатели и массивы____________________________________________ 31Передача и возврат массивов из функции _________________________ 343Аргументы командной строки ____________________________________ 35Упражнения ____________________________________________________ 36ТЕМА 5.
Препроцессор ____________________________________ 39Включение файлов ______________________________________________ 39Макроподстановка ______________________________________________ 40Условная компиляция___________________________________________ 41ТЕМА 6. Указатели на функции. Интерпретация сложныхдеклараций. Оператор typedef ______________________________ 43Указатели на функции __________________________________________ 43Интерпретация сложных деклараций _____________________________ 44Оператор typedef ________________________________________________ 45Упражнения ____________________________________________________ 45ТЕМА 7.
Структуры и объединения. Программированиединамических структур данных_____________________________ 47Структуры и операции над ними _________________________________ 47Структуры со ссылками на себя __________________________________ 48Объединения ___________________________________________________ 50Работа с динамической памятью _________________________________ 51Упражнения ____________________________________________________ 52ТЕМА 8. Файлы. Библиотечные функции для работы с файлами _ 54Открытие и закрытие файла _____________________________________ 54Чтение и запись символьных данных _____________________________ 55Чтение и запись бинарных данных________________________________ 58Позиционирование внутри файла _________________________________ 59Упражнения ____________________________________________________ 60ТЕМА 9.
Программирование в среде OC UNIX. Организация работыс процессами _____________________________________________ 62Понятие процесса. PID. Контекст процесса ________________________ 62Порождение процессов __________________________________________ 62Механизм замены тела процесса __________________________________ 63Завершение процесса.
Ожидание завершения потомков _____________ 64Упражнения ____________________________________________________ 66ТЕМА 10. Низкоуровневый ввод/вывод________________________ 67Открытие, создание, закрытие файла. Права доступа к файлам ______ 67Чтение и запись данных _________________________________________ 68Позиционирование файлового указателя __________________________ 69Дублирование дескрипторов _____________________________________ 704Упражнения ____________________________________________________ 70ТЕМА 11.
Простейшие средства взаимодействия процессов _____ 71Программные каналы ___________________________________________ 71Сигналы _______________________________________________________ 73Упражнения ____________________________________________________ 78ТЕМА 12. Средства межпроцессного взаимодействия System V __ 80Именование разделяемых объектов _______________________________ 80Общие принципы работы с разделяемыми ресурсами _______________ 81Очередь сообщений _____________________________________________ 83Разделяемая память _____________________________________________ 88Семафоры _____________________________________________________ 90Упражнения ____________________________________________________ 98ЛИТЕРАТУРА __________________________________________ 1015ВведениеПособие подготовлено авторами на основании практическогоопыта использования и преподавания языка Си на факультетеВМиК.
В данном пособии предложены методические рекомендациипо проведению семинарских занятий по программированию, поддерживающих курс лекций «Операционные системы», читаемый втретьем семестре на факультете ВМиК МГУ.При подготовке ряда примеров и упражнений использованызадачи из «Сборника задач и упражнений по языку Си» Руденко Т.В.([5]).6ТЕМА 1. Краткая характеристика языка. Базовые типы данныхи операции с нимиЯзык Си – язык программирования высокого уровня, разработанный Д.Ритчи и его коллегами в 70х гг прошлого века. Он представляет собой минималистичный процедурный язык программирования, в котором упор сделан на эффективность компиляции. Многие возможности вынесены из базовых средств языка и предоставляются стандартной библиотекой, при этом прототипы и семантикафункций стандартной библиотеки фиксированы и не зависят от конкретного компилятора, вместе с которым она поставляется.
Си частоназывают «высокоуровневым ассемблером», поскольку он предоставляет возможность писать эффективные программы с весьма низким уровнем абстракции. В то же время Си не привязан к конкретной аппаратуре или операционной системе и предназначен для написания машинно-независимых и легко переносимых программ.Базовые типы данныхВ языке Си имеются основные управляющие конструкции, используемые в хорошо структурированных программах. Язык Сиобеспечивает разнообразие типов данных. Кроме базовых типов:char, int, float и double имеется возможность получать целуюиерархию выводимых типов данных из указателей, массивов, структур и объединений.Базовые типы данных могут быть использованы с квалификаторами: short, long, signed и unsigned. Всегда выполняется соотношение – размер short не больше размера int, а int, в свою очередь, не больше размера long.