Функции Язык программирования PHP

sem_get

(PHP 3>= 3.0.6, PHP 4)

sem_get - получает id семафора.

Описание

int sem_get (int key [, int max_acquire [, int perm]])

Возвращает положительный идентификатор семафора при успехе, FALSE при ошибке.

sem_get() возвращает id, который может использоваться для доступа к семафору System V с данным ключом. Семафор создаётся, если необходимо, с использованием битов допуска, специфицированных в параметре perm (по умолчанию 0666). Количество процессов, которые могут получать семафор одновременно, устанавливается параметром max_acquire (по умолчанию 1). В настоящее время это значение устанавливается только в том случае, если процесс обнаруживает, что он является единственным процессом, присоединённым к этому семафору.

Второй вызов sem_get() для того же ключа возвращает другой идентификатор семафора, но оба идентификатора указывают на один семафор.

См. также sem_acquire(), sem_release() и ftok().

Примечание: эта функция не работает на системах Windows.


Назад Оглавление Вперёд
sem_acquire Вверх sem_release

Субпатэрны

Фактически такое выполнение обычными скобками двух функций не всегда помогает. Бывают случаи, когда необходим группировка субпатэрнов без необходимости захвата. Если после открывающей скобки идёт "?:", субпатэрн не выполняет захвата и не учитывается при подсчёте количества захвативших субпатэрнов. Например, если строка "the white queen" сопоставляется с патэрном

((?:red|white) (king|queen))

то будут захвачены подстроки "white queen" и "queen", и они будут пронумерованы 1 и 2. Максимальное количество захватываемых подстрок - 99, а максимальное количество всех субпатэрнов, захватывающих и незахватывающих, равно 200.

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

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

совпадают с одним и тем же набором строк. Поскольку альтернативные ветви пробуются слева направо, а опции не восстанавливают значения, пока не будет достигнут конец субпатэрна, установка опций в одной ветви не влияет на последующие ветви, и поэтому вышеприведённые патэрны совпадают с "SUNDAY", а также с "Saturday".