LINUX.ORG.RU

Conexus – универсальная библиотека ввода/вывода для ЯП C++

 conexus


0

0

При программировании на таких языках, как C++, особое внимание приходится уделять организации операций ввода и вывода. Я имею в виду не простейшие случаи ввода/вывода на стандартные устройства (консоль) – здесь не возникает никаких вопросов.
Источники ввода и цели вывода отличаются таким разнообразием, что поневоле возникает мысль о необходимости некоторого универсального решения этой проблемы.
Одним из предлагаемых решений является библиотека Conexus. Статья о ней будет полезна начинающим разработчикам приложений для unix-подобных операционных систем.

>>> Подробности

★★★

Проверено: isden ()
Последнее исправление: isden (всего исправлений: 1)

я уже что-то подобное на свежемясе видел

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

Если только приспешникам трупа страуса. Адекватным людям он не нужен.

balodja ★★★
()

Как страшно жить.

Посмотрел листинги кода в статье и ужаснулся. Страшненько.

balodja ★★★
()

Срань какая-то. Разве в ибм никогда не слышали, про STREAMS?

И да, плюсы в системном программировании абсолютно не нужны, особенно в метапрограммном варианте с шаблонами.

Sun-ch
()
Ответ на: комментарий от Sun-ch

Ого! Кто-то слышал про STREAMS может здесь есть кто-то кто слышал про socket?

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

пардон, ет не вас случаем тут люди в белых халатах ищут?

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

Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки. с++ ненужен уже никому, особенно когда речь идет о новой разработке.

Sun-ch
()

втянули REBOL в C++ - точно так же, как раньше втягивали OCaml в Prop/Felix; сомневаюсь, что эта библиотека будет иметь сколько-нибудь заметную популярность

jtootf ★★★★★
()
Ответ на: комментарий от Sun-ch

>Срань какая-то. Разве в ибм никогда не слышали, про STREAMS?

А как ты со STREAMS напишешь программу ввода вывода в последовательный порт: с обработкой таймаутов, ошибок чётности, CRC и др.? Я думаю, что они слышали, а у тебя просто очередной приступ высокомерия: типа я умный, а ИБМ дураки сидят.

И да, плюсы в системном программировании абсолютно не нужны, особенно в метапрограммном варианте с шаблонами.


Возможно, но C и С++ прекрасно друг друга дополняют и не мешают.

GladAlex ★★★★★
()

что-то вот такое было бы намного интересней

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

А как ты со STREAMS напишешь программу ввода вывода в последовательный порт

а зачем это делать с помощью этой библиотеки?

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

>а зачем это делать с помощью этой библиотеки?

Может и незачем, они только пишут, что с последовательными портами она умеет работать.

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

:) «конечно». Драйвер порта? :) Есть ещё программные протоколы типа Modbus - там самому нужно писать: синхронизацию, котроль, который я уже упоминал, расшифровку пакетов.

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

А в чем проблема? Встрой в цепочку вызовов свой обработчик и делай что хочешь, помоему ты нихрена не понял, что такое STREAMS.

Sun-ch
()
Ответ на: комментарий от Sun-ch

Я понял, что ты имел в виду и какие STREAMS. Я на них и писал. А обёртка С++ всё равно.

GladAlex ★★★★★
()
Ответ на: комментарий от Sun-ch

> Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки.

На каком языке писать приложения для десктопа и маемо?

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

>> Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки.

На каком языке писать приложения для десктопа

ява

и маемо?

функцианальные языки

// c: rawest human

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

>>На каком языке писать приложения для десктопа

ява

А оно тормизить не будет?

и маемо?

функцианальные языки

Т. е. приложения для линукса теперь надо разрабатывать и поддерживать в двух экземплярах на разных языках?

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

функцианальные


(смотрит на аватарку)
Это в Оракле вас так замучали? Буковки путаете?

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

>Все нетривиальные абстракции дырявы.

Чувачок громко пернул. Он наверное никогла не слышал о методах создания надежных программ.

Sun-ch
()

> В целом исходный код программы почти не отличается от обычного кода на C++

Чесслово, я в глубокой задумчивости зачем оно надо.

Casus ★★★★★
()
Ответ на: комментарий от Sun-ch

> Он наверное никогла не слышал о методах создания надежных программ.

Надёжные (в смысле с проведённым теоретическим доказательством надёжности) программы — это миф. Пока ты будешь писать одну «надёжную», конкуренты напишут в 100 раз более навороченную «ненадёжную», но зато нужную.

Casus ★★★★★
()

Переиначивая старый анекдот - Был VB и C++. VB умер, C++ остался. Была Java и C++. Java протормозила, C++ остался. Были ActiveX, COM, ATL, COM+. Все отвалили, C++ остался. Сейчас есть Python, C# и F#... Посмотрим кто выйдет в финал... :-)

eug
()
Ответ на: комментарий от Sun-ch

>Сама абстракция не может быть дырявой

Конечно. «Дырявы» реализации этих абстракций!

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

Ты путаешь языки и технологии (COM+). Ява это не просто язык, а очень мощный набор технологий.

Sun-ch
()
Ответ на: комментарий от Sun-ch

>Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки

Это кеды у меня должны быть на яве? Или на лиспе?

Бобер, выдыхай.

anonymous
()

> При программировании на таких языках, как C++, особое внимание приходится уделять организации операций ввода и вывода.

для unix-подобных операционных систем

Вот для них как раз вполне может хватить обычного fdset из stdio с последующими fprintf и fscanf (для текстовых протоколов обмена). Бинарные протоколы прекрасно реализуются через read/write без особых извращений (для сокетов, файлов, устройств и прочего...).

Чего тут надо было изобретать - совершенно непонятно.

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

> Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки. с++ ненужен уже никому, особенно когда речь идет о новой разработке.

s/C/Limbo/

FIXED

korvin_ ★★★★★
()
Ответ на: комментарий от Sun-ch

> Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки. с++ ненужен уже никому, особенно когда речь идет о новой разработке.

Это был вопрос? Или для уверенности повторять каждый час?

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

> Любят на лоре всё хоронить. Бывает еще вылезти не успеет, а его уже лопатой по голове и в яму.

а ты как думал? лор — этож кладбище домашних животных^W^WЯП, ОС и прочих ИТ

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

>а ты как думал? лор — этож кладбище домашних животных^W^WЯП, ОС и прочих ИТ

Тут как-то стремно думать, кто тогда мы ;)

anonymous
()

>>а ты как думал? лор — этож кладбище домашних животных^W^WЯП, ОС и прочих ИТ

Тут как-то стремно думать, кто тогда мы ;)

Асфальтоукладчики, пытаемся хоронить глобально и надежно.

mikhalich ★★
()

Почему fp не смартпоинтер закрывающийся в деструкторе при выходе из области видимости? Как у нас с скрытыми аллокациями, они хоть в документации описаны? А то какой-то C с классами, не C++.

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

> Т. е. приложения для линукса теперь надо разрабатывать и поддерживать в двух экземплярах на разных языках?

Нет ответа? Я так и думал.

anoyonymous
()
Ответ на: комментарий от Sun-ch

> Все системные вещи надо писать исключительно на С, для всего остального - ява и функцианальные языки. с++ ненужен уже никому, особенно когда речь идет о новой разработке.

Ну и чушь.

функцианальные языки

Опечатка по Фрейду. Действительно, не нужны.

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

> Любят на лоре всё хоронить. Бывает еще вылезти не успеет, а его уже лопатой по голове и в яму.

и где там VB>?

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