linux | pause函数 、alarm函数、signal函数

c++ 复制代码
//直接上demo
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <cerrno>


void signalrm_fn(int sig)
{
    printf("alarm!\n");
    alarm(2);
    return;
}
int main(void)
{
	//信号触发函数 ,当该线程触发到SIGALRM信号之后,便会执行signalrm_fn函数
	//而 函数 alarm(2)  表明运行到当前,计时2秒,2秒后发出信号SIGALRM
	//然后执行函数signalrm_fn
	//注意啊,程序 跑2秒是很快的,所以要将进程的状态设置为挂载
	
	
    signal(SIGALRM,signalrm_fn);
    alarm(2);
    while(1){
     int ret = pause();
      printf("the return is :%d\n",ret);
      if(errno == EINTR){
        printf("errno == EINTR\n");
    }
    }

    return 0;
}
bash 复制代码
alarm!
the return is :-1
errno == EINTR
alarm!
the return is :-1
errno == EINTR
alarm!
the return is :-1
errno == EINTR

######################################

被打断施法,后面继续更新

感觉这一块涉及很多底层 进程 通信

Q@@@QQ

相关推荐
摇滚侠1 分钟前
面试实战 问题三十四 对称加密 和 非对称加密 spring 拦截器 spring 过滤器
java·spring·面试
xqqxqxxq2 分钟前
Java 集合框架之线性表(List)实现技术笔记
java·笔记·python
L0CK10 分钟前
RESTful风格解析
java
程序员小假19 分钟前
我们来说说 ThreadLocal 的原理,使用场景及内存泄漏问题
java·后端
何中应22 分钟前
LinkedHashMap使用
java·后端·缓存
tryxr29 分钟前
Java 多线程标志位的使用
java·开发语言·volatile·内存可见性·标志位
talenteddriver34 分钟前
java: Java8以后hashmap扩容后根据高位确定元素新位置
java·算法·哈希算法
云泽80837 分钟前
STL容器性能探秘:stack、queue、deque的实现与CPU缓存命中率优化
java·c++·缓存
蓝晶之心42 分钟前
Linux rsync ssh方式数据备份
linux·运维·服务器
yyy(十一月限定版)43 分钟前
c语言——栈和队列
java·开发语言·数据结构