簡體   English   中英

用戶定義的信號方法

[英]User defined signal method

我一直在跟蹤APUE教科書,在該教科書中,他們舉了一個打印用戶定義信號的示例。

static void sig_usr(int);
/* one handler for both signals */
int
main(void)
{
    if (signal(SIGUSR1, sig_usr) == SIG_ERR)
        err_sys("can’t catch SIGUSR1");
    if (signal(SIGUSR2, sig_usr) == SIG_ERR)
        err_sys("can’t catch SIGUSR2");
    for ( ; ; )
        pause();
}
static void
sig_usr(int signo)
/* argument is signal number */
{
    if (signo == SIGUSR1)
        printf("received SIGUSR1\n");
    else if (signo == SIGUSR2)
        printf("received SIGUSR2\n");
    else
        err_dump("received signal %d\n", signo);
}

有人可以解釋SIGUSR1的位置以及SIGUSR2的定義方式嗎? 我知道該函數只是在等待其他信號之前等待捕獲適當的信號,但我不知道它如何知道哪個信號代碼是SIGUSR1和SIGUSR2。

它們在頭文件signal.h 您可以使用kill命令以編程方式發送它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM