C++ оболочка над системными вызовами

Все о программировании под *nix
shaleny
Заглянувший
Сообщения: 4
Зарегистрирован: 07 июл 2007, 16:55

C++ оболочка над системными вызовами

Сообщение shaleny »

В книге Марка Рочкинда "Программирование для UNIX" вкратце описывается авторская оболочка над основными системными вызовами для языка С++. Естественно основная задача данной оболочки не предоставить возможность использования системных вызовов, которые и так без проблем в С++ можно использовать. Автор в основном лишь изменил методы обработки ошибок: с рассмотрения пары возвращаемое значение и errno на стандартные для C++ механизмы обработки исключений.
По этому поводу возник у меня интерес, существуют ли подобные библиотеки для всех системных вызовов. Поиск в Google ощутимых результатов не дал, поэтому могу предположить, что с большой вероятностью данная концепция не очень интересна разработчикам. Вот и интересно, почему так?
Если все же что-либо подобное существует, буду рад, если кто-либо приведет ссылки на таковые оболочки.

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

не совсем понял о чем речь, посоветую взглянуть на такой фреймворк как blocxx, например (http://forge.novell.com/modules/xfmod/project/?blocxx)

shaleny
Заглянувший
Сообщения: 4
Зарегистрирован: 07 июл 2007, 16:55

Сообщение shaleny »

Ну да, это нечто похожее, но все-таки не совсем то, что имелось в виду. BlocXX, насколько я понял, является более широкой библиотекой, в которую добавлены функции, которые по мнению создателей будут полезны разработчикам, но при этом они не имеют своего прототипа среди стандартных функций *nix. Вот что пишет сам Рочкинд перед описанием своей оболочки, может это поможет прояснить ситуацию:
В этой книге я часто жаловался на то, что стандартный API UNIX страдает от несогласованности обработки ошибок, странного именования функций и избыточности. Как было сказано в разделе 1.4.3, гораздо лучше обрабатывать ошибки с использованием исключений С++. А если уж я собрался сделать то, что для этого нужно, я могу переименовать функции и организовать их в классы, руководствуясь категорими из приложения D.
Вот тут описаны цели, которые преследовал автор и средства, которыми он при этом пользовался. Там же есть class reference получившейся библиотеки.
Кстати Рочкинд пишет, что он полностью сохраняет семантику стандартных функций, чего про BlocXX, на мой взгляд, не скажешь.

И все же, мне было больше интересно даже не найти соответствующий wrapper, а узнать, почему такие wrapper'ы непопулярны (исходя из результатов поиска в Google, правда нужно сделать скидку на то, что возможно я просто искать не умею).

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение michael »

shaleny писал(а): И все же, мне было больше интересно даже не найти соответствующий wrapper, а узнать, почему такие wrapper'ы непопулярны (исходя из результатов поиска в Google, правда нужно сделать скидку на то, что возможно я просто искать не умею).
Скорее всего, это никому особенно не нужно - единый wrapper для всех системных вызовов. Все вызовы всё равно никто не использует, а для используемых wrapper нетрудно и самому написать. Кроме того, на c++ есть куча разных отдельных библиотек для работы с файлами, сокетами и т. д. Там, обычно, и есть требуемая обработка ошибок.

Ответить