WSSetSignalHandler (C 関数)

int WSSetSignalHandler(WSENV env,int s,void *sa)

オブジェクト sa で詳述されるUnix信号ハンドラ(処理)システムを信号 s のために,WSTPライブラリ信号処理構造の中にインストールする.

詳細

  • WSSetSignalHandler()は,Microsoft Windowsでは作動しない.
  • sa は,Unixのsigaction structのポインタである.sigaction構造に関する詳細については,ほとんどのUnixやUnixに似たシステム上にあるヘッダファイルsignal.hを参照するとよい.
  • WSSetSignalHandler()は,エラーがない場合にはWSEOKを返し,エラーがある場合にはwstp.hにリストされている他のエラーコードの一つを返す.
  • WSSetSignalHandler()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

  (1)

#include <signal.h>
#include "wstp.h"

void app_signal_handler(int signum)
{
    /* ... */
}

/* set a signal handler in the WSTP environment */

void f(WSENV ep)
{
    struct sigaction sa;
    int err;

    sa.sa_handler = (void (*)(int))app_signal_handler;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;


    /* install app_signal_handler for SIGHUP */
    err = WSSetSignalHandler(ep, SIGHUP, (void *)&sa);
    if(err != WSEOK)
        { /* unable to set the signal handler in ep */ }
}