Документация по LinuxLinuxDoc.Ru 🔍

sigaltstack - считывает или устанавливает содержимое дополнительного стека сигнала

НАЗВАНИЕ
sigaltstack - считывает или устанавливает содержимое
дополнительного стека сигнала

СИНТАКСИС
#include

int sigaltstack(const stack_t *ss, stack_t *oss);

где:

ss указывает на структуру signalstack, определенную в
и сохраняющую содержимое стека после
вызова.

Если oss не равно NULL, то оно указывает на структуру
signalstack, сохраняющую содержимое стека до
вызова.

ОПИСАНИЕ

sigaction(2) может обозначать возможность выполнения
сигнала через альтернативный (дополнительный) стек. В этом
случае sigaltstack(2) сохраняет сигнал в структуре
дополнительного стека ss, в которой статус его выполнения
может быть проверен перед обработкой.


Стуктура sigaltstack определена в таким
образом:


void *ss_sp /* SVID3 использует caddr_t ss_sp
int ss_flags
size_t ss_size
где:

ss_sp указывает на структуру стека.

ss_flags
определяет состояние стека SS_DISABLE или
SS_ONSTACK так:

Если ss не NULL, то новое состояние может быть
установлено в SS_DISABLE, оно определяет, что стек
должен быть отключен, а ss_sp и ss_size должны
игнорироваться. Если SS_DISABLE не установлен, то
стек будет включен.

Если oss не NULL, то состоянием стека может быть и
SS_ONSTACK и SS_DISABLE. Значение SS_ONSTACK
определяет, что процесс сейчас выполняется на
дополнительном стеке и что любая попытка изменить
его во время выполнения завершится ошибкой.
Значение SS_DISABLE определяет, что на текущий
момент стек сигнала отключен.

ss_size
определяет размер стека.

Значение SIGSTKSZ определяет средний размер в байтах,
используемый при размещении области дополнительного стека.
Значение MINSIGSTKSZ определяет минимальный размер стека
для обработчика сигналов. При обработке размера
дополнительного стека ваша программа должна учитывать эти
значения при обращениях к стеку для планирования
загруженности системы.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
sigaltstack(2) возвращает 0 при нормальном завершении
работы и -1 при ошибках.

КОДЫ ОШИБОК
sigaltstack(2) меняет errno в следующих случаях:

EINVAL ss не является нулевым указателем а элемент
ss_flags, на который указывает ss, содержит флаги,
отличающиеся от SS_DISABLE.

ENOMEM Размер области дополнительного стека меньше, чем
MINSIGSTKSZ.

EPERM Была попытка изменить активный (работающий) стек.

СООТВЕТСТВИЕ СТАНДАРТАМ
Эта фукнция соответствует стандарту: XPG4-UNIX.
Читать новости Linux в Telegram
Linux - sigaltstack - считывает или устанавливает содержимое дополнительного стека сигнала
Мы в соцсетях ✉