Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > разъясните по поводу стандартной библиотеки СИ


Автор: v4567 21.7.2012, 12:53
Я нашёл полное????? а может и не полное описание библиотеки языка Си, вот оно:
http://www.opennet.ru/docs/RUS/glibc/glibc.html#toc12
Вопрос номер один это полное описание или нет?

Далее привожу цитату из методички:
А. С. Деревянко "СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ ЭВМ"
скачанной вот отсюда: http://www.twirpx.com/signup/

"Традиционно считалось, что единственным языковым средством, дающим полный доступ к аппаратным средствам ЭВМ, является язык Ассемблера. Применительно к ПЭВМ это не совсем так. Многие языки, системы программирования которых реализованы на ПЭВМ, имеют в своем арсенале такие средства, в частности язык Си, который был разработан в 1972 году Д.Ритчи именно как язык системного программиста для написания операционных систем (системы UNIX). Не следует, однако, считать, что средства низкоуровневого доступа являются исключительной прерогативой языка Си - они есть и в других языках, например, программные иллюстрации в [4] базируются на Паскале, а в [6] - на Бэйсике. Популярность Си для целей системного программирования обусловлена наряду с наличием упомянутых средств (а может быть и в первую очередь) высокой эффективностью объектных кодов, вырабатываемых Си-трансляторами.


В данной работе использовалась версия 2.0 системы программирования Турбо-Си. Выбор языка Си в качестве базового для нашего пособия объясняется также и тем, что запись интересующих нас в первую очередь обращений к аппаратным и системным средствам в языке Си весьма "прозрачна" и соответствующие фрагменты текста Си-программ легко могут быть спроецированы на язык Ассемблера или на какой-либо другой язык высокого уровня. Не следует рассматривать наше пособие как пособие по программированию на языке Си. В целом ряде программ мы сознательно отказывались от присущих языку Си компактности и изящества, чтобы сделать тексты программ более удобочитаемыми. Кроме того, в системах программирования Си очень многие обращения к DOS и к BIOS реализованы в виде стандартных функций (в Турбо-Си описания этих функций находятся в файлах DOS.H и BIOS.H), мы же в наших программных примерах игнорировали наличие таких функций, чтобы достичь большего соответствия с Ассемблерным программированием."

Далее в методичке приведены описания следующих функций:
peek, peekb, poke, pokeb, inport, inportb, outport, outportb, int86 и т.д.
Судя по описанию библиотеки Си (http://www.opennet.ru/docs/RUS/glibc/glibc.html#toc12) ТАКИХ ФУНКЦИЙ ТАМ НЕТ!!!!
Вопрос, в стандартном языке Си (Турбо-Си насколько я понял это борландовский компилятор, а соответственно и разновидность языка Си) действительно нет таких функций и работа в Си на низком аппаратном уровне не возможна? Или описание стандартной библиотеки Си (http://www.opennet.ru/docs/RUS/glibc/glibc.html#toc12) не полное?
Спасибо за ответы!


Автор: Cheloveck 21.7.2012, 13:02
Цитата(v4567 @  21.7.2012,  13:53 Найти цитируемый пост)
в Турбо-Си описания этих функций находятся в файлах DOS.H и BIOS.H

Эти файлы не имеют к стандартной библиотеке ни какого отношения. Библиотека КРОССПЛАТФОРМЕННАЯ и, по определению, не может содержать функций, зависимых от ОС или архитектуры. Ищи все свои функции в библиотеке турбо си.

Автор: Kekek 21.7.2012, 13:04
Turbo C принципиально не работает под Юниксами, только под MS-DOS. В Юниксах нет заголовочных файлов DOS.H и BIOS.H.

Автор: Cheloveck 21.7.2012, 13:10
Описание стандартной библиотеки лучше смотреть не на левых ресурсах, а в стандарте http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf

Автор: bsa 22.7.2012, 22:57
v4567, что ты плодишь темы? Тебе уже сказали, что работать с портами и прерываниями в современных ОС может только ядро (или драйвер). И не пытайся найти обходные пути. Если они есть, то это брешь в системе, которую заделают при первой возможности. Лучше выкинь из головы это и начни писать программы с помощью высокоуровневых библиотек (чисто графика - SDL, OpenGL; GUI - Qt, GTK+).

Автор: xvr 23.7.2012, 11:50
Цитата(v4567 @  21.7.2012,  12:53 Найти цитируемый пост)
Я нашёл полное????? а может и не полное описание библиотеки языка Си

Это не описание 'библиотеки языка С', а описание ее конкретной реализации (libc) - она может и не совпадать со стандартом. Стандартная библиотека это та, что описана в стандарте языка (Cheloveck вым дал ссылку), и в POSIX (IEEE 1003)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)