Регулярные выражения — 2. Группирующие скобки

Правила регулярных выражений, применяемые в предыдущих версиях Perl допускали наличие круглых скобок, но трактовали их либо как сохраняющие, либо как исключительно группирующие в зависимости от наличия непосредственно после открывающей скобки модификатора ? Читать далее «Регулярные выражения — 2. Группирующие скобки»

Регулярные выражения — 3. Квантификаторы

Как и прежде, после любого символа в регулярном выражении допустимо указывать квантификатор — то есть некую конструкцию, которая уточняет, сколько раз символ может встречаться в тестируемой строке. Читать далее «Регулярные выражения — 3. Квантификаторы»

Пошаговый анализ кода

Давайте теперь взглянем на основные части кода библиотеки TFP.

Начнем мы с заголовочного файла tfplib.h. Каждая программа, в которой будет использоваться библиотека идентификации, должна включать tfplib.h. Читать далее «Пошаговый анализ кода»

Создание дополнительных сегментов с помощью языковых расширений компилятора GNU C/C++

Для этих целей используется модификатор __attribute__ который может задавать условия сохранения структур, данных и т.п. в исполняемом файле. Читать далее «Создание дополнительных сегментов с помощью языковых расширений компилятора GNU C/C++»

Требования к утилите

Требования к утилите, которые стали понятны из телефонного разговора, были довольно нехитры: заказчики хотели простой иметь простой, минимально затрагивающий поведение программы, способ ассоциировать некую маркировку с каждым потоком, который они могли контролировать в их системе. Читать далее «Требования к утилите»

Мутексы

Добро пожаловать в замечательный мир мутексов ( mutex = mutual exclusion, что переводится как «взаимное исключение» ). Из названия видно, что мутексы предназначены для того, чтобы сделать определнный код или данные доступными только одному потоку одновременно. Читать далее «Мутексы»

Дизайн

Главной сложностью дизайна было принятие решения о том, где именно хранить идентифицирующую информацию. Очевидно, что она должна была храниться для каждого потока индивидуально, что в свою очередь означало или изощренное применение глобальных переменных или использование существующей в Neutrino поддержки потоковых областей данных. Читать далее «Дизайн»