Как правильно инициализировать sigset_t - PullRequest
5 голосов
/ 10 января 2020

Общеизвестно, что если нужно сбросить переменную sigset_t, то достаточно

    sigemptyset(&my_ss);

Мне интересно, существует ли стандартный подход к инициализации * 1006? * такая переменная, чтобы получить его пустым (т. е. как если бы пользователь только что сбросил его с помощью показанного выше метода). Может быть, что-то вроде макроса из pthread API. Например,

static sigset_t trackedSignals = SIGSET_INITIALIZER;

В Linux системах, очевидно, достаточно использовать {0} в качестве такого инициализатора, но будет ли он работать везде? Потому что, как я вижу, POSIX довольно скудно определяет этот тип:

sigset_t

[CX] Целочисленный или структурный тип объекта, используемый для представления наборов сигналы.

Таким образом, строго говоря, {0} не нужно инициализировать этот объект семантически "пустым".

...