URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3615
[ Назад ]

Исходное сообщение
"Заголовочные файлы"

Отправлено Дмитрий , 18-Ноя-04 19:25 
Подскажите плз. какой хедер в линуксе соответствует досовскому conio.h ...
или, если можно, что-то типа таблици соответсвия досовских *.h файлов линуксовым .... заранее спасибо за ответы.

Содержание

Сообщения в этом обсуждении
"Заголовочные файлы"
Отправлено mirya , 20-Ноя-04 18:08 
Все ANSI Cшные ф-ции есть там и там в одинаковых хедерах. conio.h к ним не относится, соотв. ничего подобного на юнихах нет. Родной интерфейс навороченых терминальных приложений - ncurses.h/curses.h (-lncurses/-lcurses) - понятное дело, API несовместимо с conio.h. Можно попробовать поисать недостающие ф-ции в stdlib.h / unistd.h

"Заголовочные файлы"
Отправлено dimus , 23-Ноя-04 07:31 
Касательно conio.h
DOS работает с консолью - видеокарта+монитор+клава - завязанной на локальную машину. Соответственно можно из программы выводить непосредственно в видеопамять консоли, взаимодействовать с устройством "клавиатура" непосредственно и т.п.
UNIX - системы работают с терминалами. Терминал - это не консоль ДОС. Терминалы первоначально были отдельными железяками, соединенными с основной системой по последовательной линии - это также, как внешний модем, подсоединенный к COM порту. Соответственно и речи быть не может, чтобы получить непосредственный доступ к памяти, как это делалось в досовом conio. Управление терминалом осуществляется при помощи Эскейп-последовательностей, причем они могут быть разными у разного оборудования. Чтобы лишний раз не изобретать велосипед, была создана библиотека curses. Она позволяет скрыть от несчастного программиста аппаратные особенности всего того множество терминалов, которые наплодили производители за все эти годы и сосредоточится на действительно нужных вещах. Если требуется создание приложений, где используются возможности взаимодействия пользователей с терминалом в интерактивном режиме, нужны окошки и всякие подобные красивости, то использование библиотеки curses будет очень правильным выбором. На www.opennet.ru была хорошая статья про это.