C语言中(void)signal(SIGALRM, alarmhandle);是什么意思

是调用某个函数吗... 是调用某个函数吗 展开
 我来答
kaixingui2012
推荐于2017-09-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6454万
展开全部

signal(SIGALRM, alarmhandle); 表示给当前进程注册SIGALRM信号处理代码,如果收到SIGALRM信号,就会去执行alarmhandle函数

$ man signal
...

SYNOPSIS
       #include <signal.h>
       typedef void (*sighandler_t)(int);
       sighandler_t signal(int signum, sighandler_t handler);
DESCRIPTION
       The  signal() system call installs a new signal handler for the signal with number signum.  The signal handler is set to sighandler which may be a user specified function, or either SIG_IGN or SIG_DFL.
       signal()函数是个系统调用,该函数按signum设定一个新的信号处理句柄(函数).新设定的处理函数可以是用户自定义的函数,也可以是系统指定的SIG_IGN 或 SIG_DFL.

参考代码:

#include <signal.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void alarmhandle(int sig)
{
    printf("recv sig:%d\n", sig );
    printf("exit!\n");
    exit(0);
}
int main()
{
    signal( SIGALRM, alarmhandle );
    printf("begin...\n");
    alarm(5); //定时器,用于在5秒后产生SIGALRM信号
    while( 1 );
    return 0;
}

运行结果:

begin...

recv sig:14

exit!

jiangheshuilc
2012-02-15 · TA获得超过140个赞
知道小有建树答主
回答量:99
采纳率:100%
帮助的人:59万
展开全部
是给程序注册SIGALRM 信号
当程序收到SIGALRM 就会去执行alarmhandle 指向的函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式