| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
Эти файлы не имеют к стандартной библиотеке ни какого отношения. Библиотека КРОССПЛАТФОРМЕННАЯ и, по определению, не может содержать функций, зависимых от ОС или архитектуры. Ищи все свои функции в библиотеке турбо си. |
| Автор: 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+). |