c++ - C++中的中断

标签 c++ linux interrupt

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

最佳答案

这里有两个使用报警功能的例子。 alarm 导致 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;
}

关于c++ - C++中的中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822379/

相关文章:

c - 嵌入式 Linux 项目的设备读取/写入问题

c - 如何在 Linux 中查找属于同一进程的线程

c - `memcpy((void *)dest, src, n)` 和 `volatile` 数组安全吗?

c++ - 迭代器失效规则是否意味着线程安全?

c++ - 写一个像 Vector.at() 这样的方法

linux - crontab -e 不在给定时间运行脚本

assembly - 当中断发生时,x86 架构中会发生什么?

assembly - ASM 中带有 int 33h 的鼠标无法正常工作

c++ - 无限数组 C++ 在一个表达式中使用两个新值调整数组大小

c++ - 什么叫通过花括号赋值?可以控制吗?