C ++中断

时间:2010-09-29 14:07:27

标签: c++ linux interrupt

我正在尝试理解中断,并且正在寻找使用中断的简单代码。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

以下是使用闹钟功能的两个示例。报警导致SIGALRM在您调用该函数后n秒发生。

此程序将运行3秒钟,然后使用SIGALRM终止。

#include <signal.h>
#include <unistd.h>

int main() {
    alarm(3);
    while(true);
}

在这种情况下,我们想要捕获SIGALRM,然后优雅地消息:

#include <signal.h>
#include <unistd.h>
#include <iostream>

volatile bool alarmed = false;

void alrm_handler(int) {
    alarmed = true;
}

int main() {
    signal(SIGALRM, alrm_handler);

    alarm(3);
    while(not alarmed);

    std::cout << "done" << std::endl;
}