logo search
Литература_1 / photon_old

Добавление функции обработки сигналов

Чтобы добавить функцию обработки сигнала, используйте функцию PtAppAddSignalProc(). Обычно Вы будете вызывать её в

или

Вам понадобится подключить хеадер <signal.h>. Синтаксис функции ptAppAddSignalProc() следующий:

int PtAppAddSignalProc( PtAppContext_t app,

sigset_t const *set,

PtSignalProc_t func,

void *data);

где аргументы следующие:

app Адрес контекста приложения, структуры типа PtAppContext_t, управляющей всеми данными, связанными с этим приложением. Задайте NULL в качестве этого аргумента, так чтобы использовался контекст по умолчанию.

set Указатель на набор сигналов, которые должны служить причиной вызова функции обработки сигналов. Для компоновки этого набора используйте функции sigemptyset() и sigaddset(). Более подробно см. в "Справочнике библиотечных функций QNX 6".

func Функция обработки сигналов. См. описание PtSignalProc_t в "Справочнике библиотечных функций Photon'а".

data Любые данные, передаваемые функции

Функция PtAppAddSignalProc() возвращает 0 в случае успеха или –1, если случается ошибка.

Ваша функция обработки сигнала имеет следующий прототип:

int signalProcFunctions(int signum, void *data);

аргументами являются:

signum Номер обрабатываемого сигнала

data Параметр data, заданный в вызове функции PtAppAddSignalProc().

Если Вы хотите, чтобы обработчик сигнала остался установленным, верните Pt_CONTINUE. Чтобы удалить его для текущего сигнала, верните Pt_END (если функция была зарегистрирована и для других сигналов, она по-прежнему будет вызываться, если те появятся).