Re: Разработка на чистом C
От: kov_serg Россия  
Дата: 30.10.16 18:35
Оценка: 22 (3) +3
Здравствуйте, Lonely Dog, Вы писали:

LD>Привет!


LD>Я 15 лет пишу на C++, немного знаю C#, Python и пр. Но совершенно не понимаю, как писать на C. Как организовывать обработку ошибок (исключений нет, значит остаются коды возврата или setjmp/longjmp). RAII нет, значит надо в конце функции все чистить самому. Знаю, что у MS в драйверах используется goto cleanup для этих целей. Что-то типа:

LD>Понятно, что можно использовать alloca для автоосвобождения памяти. Но не везде это подходит (стек все-таки ограничен). Далее, в C++ есть STL с кучей полезных структур данных (а есть ведь еще Boost/Poco). В чистом C ничего такого нет, т.е. надо использовать какие-то сторонние библиотеки. Какие?
Сторонних библиотек предостаточно:
http://sglib.sourceforge.net/
https://sourceforge.net/projects/ctl/
https://developer.gnome.org/glib/2.50/
http://docs.libuv.org/en/v1.x/
...
На чистом С несколько иной подход. Тут более важна организация кода, а не конкретные локальные приёмы. Совершенно не обязательно тащить универсальность из C++ иногда есть требования запрещающие использование динамической памяти и вполне себе компилируется и работает на ограниченных ресурсах с заранее выделенными массивами для обработки.

LD>Может есть какие-нибудь книги? Думаю, посмотреть что-то типа Writing device drivers for Linux.

Книги тут можешь глянуть http://rsdn.org/forum/cpp/6568718.1
Автор: kov_serg
Дата: 30.09.16
в часности я тут https://cloud.mail.ru/public/8muB/R1WsFgRDF записал несколько книг.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.