Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 21

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 21 страницаА. Робачевский - Операционная система UNIX (1114671) страница 212019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Можно сказать уверенно, что синтаксис языка опреде!ляется не операционной системой. Все, что вам потребуется, это хорошеезнание самого языка и особенностей системы UNIX, а именно — ее сис!темных вызовов.Несмотря на то, что многие современные версии UNIX (особенно коммерческие) постав!ляются без исходных текстов, основная часть кода ядра в них полученакомпиляцииС!модулей.www.books-shop.comпрограммы101Во!первых, не забудьте включить в исходный текст необходимые файлызаголовков. Во!вторых, уточните синтаксис вызова библиотечных и сис!темных функций. В!третьих, используйте их по назначению.

В!четвертых,не пренебрегайте комментариями.В этом (за исключением, пожалуй, четвертого совета) вам помогут элек!тронный справочникваш опыт, и, надеюсь, эта книга.ЗаголовкиИспользование системных функций обычно требует включения в текстпрограммы файловсодержащих определения— чис!ло передаваемых аргументов, типы аргументов и возвращаемого значения.Большинство системных файлов заголовков расположены в каталогахилиЕсли вы планируете использовать мало!знакомую системную функцию, будет нелишним изучить соответствующийраздел электронного справочника тап(1).

Там же, помимо описания фор!мата функции, возвращаемого значения и особых ситуаций, вы найдетеуказание, какие файлы заголовков следует включить в программу.Файлы заголовков включаются в программу с помощью директивы#include. При этом, если имя файла заключено в угловые скобки (<>), этоозначает, что поиск файла будет производиться в общепринятых каталогаххранения файлов заголовков.

Если же имя файла заголовка заключено вкавычки, то используется явно указанное абсолютное или относительноеимя файла.Например, системный вызов creat(2) служащий для создания обычногофайла, объявлен в файле <fcntl.h> следующим образом:lincludettinclude <sys/stat.h><fcntl.h>intcharВключение в исходный текст прототипа системного вызова creat(2) позво!ляет компилятору произвести дополнительную проверку правильности ис!пользования этой функции, а именно — числа аргументов и их типов.Можно заметить, что наряду со стандартными типами языка С, напримерchar, для второго аргументаиспользуется производный тип —В ранних версиях UNIX большинство системных вызовов исполь!зовали стандартные типы, например, creat(2) для второго аргумента охотнопринимала тип int.

Производные типы переменных, имеющие окончание_t, которые вы в большом количестве встретите при программировании вUNIX, получили название примитивов системных данных. Большинствоэтих типов определены в файле <sys/types.h>, а их назначение заключает!ся в улучшении переносимости написанных программ. Вместо конкретныхтипов данных, каковыми являются int, char и т. п., приложению предлага!www.books-shop.comГлава 2.102UNIXется набор системных типов, гарантированно неизменных в контексте сис!темных вызовов. Другими словами, во всех версиях UNIX сегодня и спустядесять лет, системный вызов creat(2) в качестве второго аргумента будетпринимать переменную типа mode_t.

Фактический размер переменныхэтого типа может быть разным для различных версий системы, но это от!разится в изменении соответствующего файла заголовков и потребуеттолько перекомпиляции вашей программы.Среда программирования UNIX определяется несколькими стандартами,обсуждавшимися во введении, и может незначительно различаться дляразных версий системы. В частности, стандарты ANSI С, POSIX. 1 и XPG4,определяют названия и назначения файлов заголовков, приведенныхв табл. 2.2.Таблица 2.2. Стандартные файлы заголовковФайл заголовкаНазначениеСодержит прототип функциидиагностикииспользуемой для<cpio.h>Содержит определения, используемые для файловых архи%вов cpio(1)Содержит определения символьных типов, а также прототи%пы функций определения классов символов (ASCII, печат%ные, цифровые и т.

д.) —isdigit(3C) и<dirent.h>Содержит определения структур данных каталога, а такжепрототипы функций работы с каталогамии т. д.Содержит определения кодов ошибок (см. раздел "Обра%ботка ошибок" в начале главы)<errno.h><fcntl.h>Содержит прототипы системных вызововopen(2) иcreat(2), а также определения констант и структур данных,необходимых при работе с файламиСодержит определения констант, необходимых для опера%ций с плавающей точкой<ftw.h>Содержит прототипы функций, используемых для сканиро%вания дерева файловой системы (file tree walk) ftw(3C) иnftw(3C), a также определения используемых констант<grp.h>Содержит прототипы функций и определения структур дан%ных, используемых для работы с группами пользователей:getgrnam(3C),getgrgid(3C) и т.

д.Содержит определения языковых констант: дни недели,названия месяцев и т. д., а также прототип функции<langinfo.h>www.books-shop.comпрограммыЮЗТаблица 2.2 (продолжение)ФайлНазначение<limits.h>Содержит определения констант, определяющих значенияограничений для данной реализации: минимальные и мак%симальные значения основных типов данных, максимальноезначение файловых связей, максимальная длина именифайла и т. д.<locale.h>Содержит определения констант, используемых для созда%ния пользовательской среды, зависящей от языковых икультурных традиций (форматы дат, денежные форматы ит. д.), а также прототип функции setlocale(3C)<math.h>Содержит определения математических констант (я, е,иСодержит определения для каталогов сообщений (messagecatalog), а также прототипы функций catopen(3C) иcatclose(3C)Содержит определениеструктурыфайлапаролей/etc/passwd, а также прототипы функций работы с ним:getpwnam(3C), getpwent(3C),и т.

д.<regex.h>Содержит определения констант и структур данных, исполь%зуемых в регулярных выражениях, а также прототипы функ%ций для работы с ними:и т. д.<search.h>Содержит определения констант и структур данных, а такжепрототипы функций, необходимых для поиска: hsearch(3C),hcreate(3C),Содержит прототипы функций перехода setjmp(3C),siglongjmp(3C), a также опреде%ления связанных с ними структур данных<setjmp.h><signal.h><stdarg.h>Содержит определения констант и прототипы функций, не%обходимых для работы с сигналами:sigemptyset(3C),и т. д. (см.

раздел "Сигналы"далее в этой главе)Содержит определения, необходимые для поддержки спи%сков аргументов переменной длины<stddef.h>Содержит стандартные определения (например size_t)<stdio.h>Содержит определения<stdlib.h>Содержит определения стандартной библиотеки<string.h>Содержит прототипы функций работы со строкамиstring(3C), strcasecmp(3C), strcat(3C), strcpy(3C) и т. д.<tar.h>Содержит определения, используемые для файловых архи%вов tar(1)стандартнойбиблиотекивво%www.books-shop.comГлава 2.704программирования UNIXТаблица 2.2 (продолжение)Файл заголовкаНазначение<termios.h>Содержит определения констант, структур данных и прото%типы функций для обработки терминального<time.h>Содержит определения типов, констант и прототипы функ%ций для работы со временем и датами: time(2), ctime(3C),localtime(3C), tzset(3C), а также определения, относящиесяк таймерам getitimer(2), setitimer(2).

Таймеры будут рас%смотрены в главе 3<ulimit.h>Содержит определения констант и прототип системноговызова ulimit(2) для управления ограничениями, наклады%ваемыми на процесс. См. также раздел "Ограничения" да%лее в этой главе<unistd.h>Содержит определения системных символьных констант, атакже прототипы большинства системных вызовов<utime.h>Содержит определения структур данных и прототип систем%ного вызова utime(2) для работы с временными характери%стиками файла (временем доступа и модификации)<sys/ipc.h>Содержит определения, относящиеся к системе межпро%цессного взаимодействия (IPC), которые рассматриваются вглаве 3<sys/msg.h>Содержит определения, относящиеся к (сообщениям) под%системе IPC. См.

также раздел "Сообщения" главы 3<sys/resource.h>Содержит определения констант и прототипы системныхвызовов управления размерами ресурсов, доступных про%цессу: getrlimit(2) и setrlimit(2). Более подробно ограниченияна ресурсы обсуждаются в разделе "Ограничения" далее вэтой главе<sys/sem.h>Содержит определения, относящиеся к (семафорам) под%системе IPC. См. также раздел "Семафоры" главы 3<sys/shm.h>Содержит определения, относящиеся к (разделяемой памя%ти) подсистеме IPC. См. также раздел "Разделяемая па%мять" главы 3<sys/stat.h>Содержит определения структур данных и прототипы сис%темных вызовов, необходимых для получения информациио файле: stat(2), lstat(2),Подробнее эти системныевызовы рассмотрены в разделе "Метаданные файла" далеев этой главе<sys/times.h>Содержит определения структур данных и прототипа сис%темного вызова times(2), служащего для получения стати%стики выполнения процесса (времени выполнения в режимеядра, задачи и т.

д.)<sys/types.h>Содержит определения примитивов системных данныхwww.books-shop.com105программыТаблица 2.2 (окончание)Файл заголовкаНазначение<sys/utsname.h>Содержит определения структур данных и прототип систем%ного вызоваиспользуемого для получения именсистемы (компьютера, операционной системы, версии ит.д.)Содержит определения констант и прототипы системныхвызововиспользуемых для синхрониза%ции выполнения родственных процессов<sys/wait.h>КомпиляцияПроцедура создания большинства приложений является общей и приведе!на на рис.

2.2.Рис. 2.2. Схема компиляции программыwww.books-shop.com2.программирования UNIXПервой фазой является стадия компиляции, когда файлы с исходнымитекстами программы, включая файлы заголовков, обрабатываются компи!лятором сс(1). Параметры компиляции задаются либо с помощью файла(или Makefile), либо явным указанием необходимых опций ком!пилятора в командной строке. В итоге компилятор создает набор проме!жуточных объектных файлов. Традиционно имена созданных объектныхфайлов имеют суффиксНа следующей стадии эти файлы с помощью редактора связейсвязы!ваются друг с другом и с различными библиотеками, включая стандартнуюбиблиотеку по умолчанию и библиотеки, указанные пользователем в каче!стве параметров. При этом редактор связей может выполняться в двух ре!жимах: статическом и динамическом, что задается соответствующими оп!циями.

Характеристики

Тип файла
PDF-файл
Размер
8,11 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее