// archives

Programming

This category contains 25 posts

Вызов внешних функций из динамической библиотеки so

Наткнулся на очень странное поведение, при подгрузке динамической библиотеки происходила ошибка: неопределенная функция. Вообще ситуация такая: Есть приложение moonlight , оно линкуется со статической библиотекой libtools.a и динамической services.so. При этом services.so вызывает функции из libtools.a, но не влинковывает ее внутрь себя. Так как приложение moonlight статически прилинковала libtools.a, то доступ ко всем фукнциям из libtools.a у [...]

TIOBE индекс на сентябрь 2010

Индекс языков программирования TIOBE определяет  популярность того или иного языка программирования. Индекс обновляется раз в месяц. Он составляется на основе данных о программистах, различных курсах, а также того, чем живут и дышат софтверные компании. В подсчете индекса активно используются поисковики такие как Google, MSN, Yahoo!, Wikipedia и даже Youtube. Понятно, что индекс TIOBE не определяет лучший [...]

Регулярные выражения PCRE

PCRE Perl Compatible Regular Expressions Иногда нужно использовать регулярные выражения в приложении. Они позволяют довольно гибко решать задачи текстового поиска. Вместо того, чтобы перебирать/сравнивать кучу вариантов текстовых шаблонов, можно написать один шаблон в формате pcre и в будущем добавлять новые варианты не в код, а только лишь в шаблон (слегка его модифицируя). Так как я [...]

Создаем объект на уже выделенном буфере

В языке С часто переписывают стандартный механизм для выделения памяти, реализуя свои функции аллокации как обертки над стандартными функциями (malloc/free). Это удобно, когда выделенных элементов много и они малого размера. Становится еще удобней, когда их не нужно удалять. Реализуется это очень просто: выделяется большая страница памяти из нее выдается память на каждый запрос аллокации когда [...]

На сколько хорошо ты знаешь GCC

Познавательный пост: Will it optimize? Будет ли gcc оптимизировать код? Проверь себя!

Сравнение производительности языков программирования

Как мы можем измерить производительность языка программирования? Никак — мы измеряем реализации языков программирования. Как мы можем измерить реализации языков программирования? Никак — мы измеряем отдельные программы. Как видно из заголовка, здесь идет разговор о сравнении реализаций компиляторов того или иного языка программирования. И на сегодняшний день картина такая: C GNU gcc C++ GNU g++ ATS [...]

Перехватываем malloc функции из glibc

Библиотека glibc позволяет легко и просто перехватывать функции аллокации памяти, такие как malloc(), realloc(), free(). Помимо этого, можно вставить свой собственный код в самое начало выполнения программы, например, для инициализации чего-либо. Я разберу как это делается на примере реализации QMP2. Все, что нам потребуется — это зарегистрировать функцию инициализации для наших перехватчиков и сохранить старые [...]

qsort и функция сравнения

Два дня ушло, чтобы заставить qsort() работать:  когда сортируете массив ссылок, то в функцию сравнения передается ссылка на вашу ссылку.

Full Unicode Support

Интересный пост. Привожу, чтобы не забыть и не потерять. Источник: Gammon Software Solutions forum. I have investigated adding Unicode support for quite some time now, and am going to abandon it for a while. There are some unanswered questions about the process, that — strangely enough — seem to be very hard to work out. [...]

Добавляем internationalization в проект (продолжение…)

Этот пост — продолжение предыдущего “Добавляем internationalization в проект“. Итак, моя вавилонская башня завершена. Все строители успешно разговаривают на UTF-8 . Поддержка i18n была сделана для следующих платформ: Windows Linux Solaris AIX Хочется немного раскрыть особенности текстовой конвертации для каждой из платформ. Так как в результате пришлось написать что-то вроде мультиплатформенной компоненты, которая имела одинаковый [...]