LINUX.ORG.RU

Помогите найти библиотеку типа conio.h под линух


0

0

Хочу написать прогу под консоль... но столкнулся с одной проблемой нет библиотеки conio.h, а функции типа gotoxy, textcolor ....и т.д. нужны позарез .... может ктонить подскажет библиотеку + описуху к ней .....

Заранее спасибо...

anonymous

No way. You don't need that functions. It's not a unix way. Console programs must not be so interactive - someone may want to use 'em from scripts. So forget all that DOSish stupidshit.

But, if you're really know what you're doing - just use ncurses.

anonymous
()


> Console programs must not be so interactive - someone may want to use 'em from scripts.

Да, но можно сделать два варианта - интерактивный и неинтерактивный (и еще как вариант - если определена переменная окружения DISPLAY, есть маза заюзать иксы).

> But, if you're really know what you're doing - just use ncurses.

От себя замечу (для тех, кто не в курске), что в ncurses периодически находят дырки, которые часто ведут к local root compromise.
Так что, как и было сказано, делать так стоит только если знаешь, что делаешь.

Есть еще вариант использовать ANSI escape-последовательности (тоже можно цвет менять, курсор в нужное место ставить, и т.п.). Просто их через printf обычный выводить, должно работать (попробовать стоит). Если терминал не полный dumb, он их поймет.
Ну а описуху найти не проблема (google, "ANSI escape sequences")

anonymous
()

:))

Классное выражение "не полный dumb" :))

anonymous
()

А что сейчас у пипла так модно выпендриваться, типа я русский забыл, или уже неспособны на русский настроится? Кто сказал, что "Console programs must not be so interactive " или был выпущен какойнить закон на сей счет? А насчет консоли это библы ncurses, termcap, хотя если интересует форточный вариант, могу порекомендовать порт Turbo Vision (http://www.sigala.it/sergio/tvision/). Замечательно работает в Xterm-e и с последним puTTY ( под виндусятиной ), даже можно мышой жмыкать-шмыкать и все будет чики-пуки.

Кстати, пипл, если кто знает еще чтонить форточное ( библа имеется ввиду) под консоль, пульните плиз ссылочками.

PETER ★★
()
Ответ на: комментарий от anonymous

I eti ANSI ne budut ni hrena rabotat' na moem sowsem ne dumb-nom VT52. Tak chto w popu ANSI. Ispol'zowanie termcap/terminfo obiazatel'no.

anonymous
()

А ncurses там работают?
АНСИ работают в консоли linux, freebsd, xterm, если не ошибаюсь, большинство виндовых терминалов (SecureCRT, например) тоже поддерживают ANSI.
Так что в попу не анси, а VT52.

anonymous
()
Ответ на: комментарий от anonymous

Нет, в попу именно ламеров, которые пишут команды терминалки в явном виде. Потому как аппаратные терминалы ЕСТЬ, и от них никуда не денешься. Все эти консольки и прочие эмуляции - фигня. Кроме того, если кому потребуется терминалка с нестандартной функциональностью, то он просто сделает про неё новую запись в terminfo. А программульки, писанные ламерами, повыбрасывают на помойку.

Antichrist
()

> Нет, в попу именно ламеров, которые пишут команды терминалки в явном виде.
> Потому как аппаратные терминалы ЕСТЬ, и от них никуда не денешься.

Это да, увы (а иногда и очень кстати)

> Все эти консольки и прочие эмуляции - фигня. Кроме того, если кому потребуется
> терминалка с нестандартной функциональностью, то он просто сделает про неё новую
> запись в terminfo.
> А программульки, писанные ламерами, повыбрасывают на помойку.

Если потребуется, чтобы прога работала с аппаратными терминалками, поддержку напишут.
А если нет, то нафига огород городить? Зачем к самокату приделывать дизель?

anonymous
()
Ответ на: комментарий от anonymous

Затем, что ты не знаешь, с чем консольная прикладуха будет работать. И переделывать потом может оказаться себе дороже. Сам вот по молодости накололся, завязался на VT52 и Tektronix. Потом с матюгами переписывал под VT220 с REGIS-ом...

Antichrist
()

> Затем, что ты не знаешь, с чем консольная прикладуха будет работать.

Да, а если знаю?

> И переделывать потом может оказаться себе дороже.

Это смотря как программу писать. Переделывать-то конечно непросто, но можно и заранее сделать так, чтобы расширять ее было проще.

> Сам вот по молодости накололся, завязался на VT52 и Tektronix. Потом с матюгами переписывал под VT220 с REGIS-ом...

Дык кто спорит, что проги, где нужна совместимость надо и писать соответственно.
Ну а если нужна небольшая аппликуха, которая будет работать в консоли и еще может быть в SecureCRT (там ANSI есть).

Вопрос риторический, каждый решает сам за себя.
И тем не менее, если мне понадобится писать простую аппликуху и мне заранее известно, на чем она будет работать, я не буду писать поддержку всего подряд, а сделаю в программе возможность расширения.

P.S. Я не автор вопроса, я просто развил тему.

anonymous
()

Прикольно тема развилась! Прежде чем советы раздавать, пипл, врубитесь что пишете ANSI - American National Standarts Institute, ну и что по -вашему значит "ANSI работают в консоли ..." ? У разных терминалов существуют разные наборы управляющих ESC - последовательностей. Можно конечно долго сидеть-программить и тупо управлять выводом на терминал. Но продвинутые придумали базу данных ESC - последовательностей разных типолв терминалов termcap и библу, для ее пользования - хоть свой терминал разрабатывайте, подключайте, в termcap прописывайте, и проги, работающие по termcap будут успешно фунциклировать и на вашем терминале. Более продвинутые придумали библу curses/ncurses ( в свою очередь, использующие termcap) - для того чтобы программер оперировал общими понятиями вывода на экран, типа вывести строку, нарисовать прямоугольник, переместить курсор и т.п. Но есть и еще более общие вещи, повторюсь, порт TVision, в котором низкоуровневый вывод сделан через ncurses. Проверял на эмуляции VT52, VT220 - работает! А на эмуляции XTerm-a воще красота, как в старом добром Досе. Выод такой - автору вопроса необходимо фильтровать базар, а для того чтобы его фильтровать нужно перед этим кое что почитать, типа terminals-howto, thinclient-howto ( как точно не помню)

PETER ★★
()

Очень странную точку зрения отстаивают некоторые анонимусы. Они предлагают писать на низком уровне, в командах терминала, при этом предусматривая возможность переноса на другие типы терминалов. Это бесспорное геройство, но может проще сразу писать переносимо и не задумываться о типе терминалов вообще? Поверьте, ncurses изучить ничуть не сложнее чем коды ANSI. Плюс ncurses в том что оно есть практически для всего что движется, и с большой вероятностью уже установлено в системе. newt скорее всего придется ставить отдельно, так же как и разные порты TurboVision.

anonymous
()

может быть на всем что движется есть curses а не ncurses??

dilmah ★★★★★
()

> ANSI - American National Standarts Institute

И что?

> что по -вашему значит "ANSI работают в консоли ..."

Дык это самое и значат.

> У разных терминалов существуют разные наборы управляющих ESC - последовательностей.

Блин. Мальчик тормоз? Вопрос был про консоль (см. исх. сообщение), а не про железные терминалы. В консоли (dos с драйвером ansi.sys, в линуксе, во freebsd) ESC'и одни и те же.
Остальной БСК поскипан за ненадобностью.

anonymous
()

> Поверьте, ncurses изучить ничуть не сложнее чем коды ANSI.

Так никто и не спорит. Я привел ANSI в качестве варианта, когда через обычный printf можно заставить консоль поменять цвет текста, переместить курсор, etc.

> Они предлагают писать на низком уровне, в командах терминала, при этом предусматривая возможность переноса на другие типы терминалов.

Не надо все проги стричь под одну гребенку. Повторяю. Для программы, которую потенциально потребуется запускать на разных терминалах (возможно, железных), записи для которых есть в termcap, ANSI не прокатит. А если программа должна запускаться только там, где есть поддержка ANSI, про термкап стоит забыть.
Уже ж я говорил про самокат и дизельный двигатель. Но всем так же понятно, что грузовик на педалях далеко не уедет.
Вы программы уровня "hello world" с поддержкой сокетов пишете?

anonymous
()

2 anonymous (*) (2002-07-10 02:54:31.29): нет, "hello world" я пишу без сокетов. Но при этом я использую стандартную функцию printf, а не реализую свою, быструю, но ни с чем не совместимую. К тому всех и призываю: используйте стандартные вещи и не мучайтесь. Поверьте, оно окупится.

anonymous
()

Дорогой anonymous (*) (2002-07-10 02:46:44.047) - это Вы мальчик, к тому же и невоспитанный. А последовательностями ESC ANSI colors напрямую пользовались довольно давно ( такие штучки я впервые пользовал примерно в году 89-м под Досом, еще на ЕС 1841 ) и рекомендовать такую технику работы хоть с терминалами, хоть с консолями под *nix - безрассудное пионерство.

PETER ★★
()

> 2 anonymous (*) (2002-07-10 02:54:31.29): нет, "hello world" я пишу без сокетов.

Ну уже хорошо.

> Но при этом я использую стандартную функцию printf, а не реализую свою, быструю, но ни с чем не совместимую.

Блин. Ну зачем искусственно утяжелять программу курсами, если хватит одной-двух эскейп-последовательностей?

> К тому всех и призываю: используйте стандартные вещи и не мучайтесь.

ANSI - стандарт. Хочешь ты это, или нет. Конечно, курсы использовать более правильно. Но альтернатива имеет право на существование.

anonymous
()

> Дорогой anonymous (*) (2002-07-10 02:46:44.047) - это Вы мальчик, к тому же и невоспитанный.

Ага. Ты мне Америку не открыл, дядя. Только мне на твое мнение относительно моей воспитанности насрать, поскольку темы это не касается.

> А последовательностями ESC ANSI colors напрямую пользовались довольно давно ( такие штучки я впервые пользовал примерно в году 89-м под Досом, еще на ЕС 1841 )

Что-то мне кажется, что ты написал это только чтобы сказать о том, что ты типа уже взрослый и продвинутый, а не о том, что ANSI знаешь. И ANSI escape-sequences это не только colors, кстати.

> и рекомендовать такую технику работы хоть с терминалами, хоть с консолями под *nix - безрассудное пионерство.

Угу. А весомее эммоций аргументов не нашлось? Жду объяснений, чем дизель на велосипеде лучше педалей.


anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.