这个函数是设置一个定时器,在接下来的某个时刻该定时器会超时,发生超时后,产生SIGALRM信号。 产生信号后,进程的行为分两种情况: 1. 忽略或者不捕获此信号 终止调用该alarm函数的进程 2. 捕获此信号 根据信号处理程序采取动作 测试代码: 1 #include <signal.h> 2 # ...
分类:
其他好文 时间:
2020-05-21 23:55:42
阅读次数:
104
使用 trap -l 或者 kill -l 来查看信号的编号及关联的名称 1 [party_a@localhost ~]$ kill -l 2 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 3 6) SIGABRT 7) SIGBUS 8) ...
分类:
系统相关 时间:
2020-05-06 21:49:58
阅读次数:
100
LinuxC——5.信号 1.??信号 信号是一种通信机制。 常用信号 SIGABRT 6 终止进程,abort函数产生 SIGALRM 14 超时,调用alarm产生 SIGBUS 7 硬件故障 SIGCHLD 17 子进程状态改变 SIGINT 2 终止进程 SIGIO 29 异步通知信号 SI ...
分类:
系统相关 时间:
2020-04-11 09:19:37
阅读次数:
100
用select实现超时 1.read_timeout函数封装 2.write_timeout 3.accept_timeout 4.connect_timeout 套接字I/O超时设置方法 1.ararm 第一种: SIGALRM void handler(int sig) { return 0; ...
分类:
其他好文 时间:
2020-03-25 23:11:15
阅读次数:
85
信号的基本概念信号就是一个软件中断,可以打断进程的执行,让进程处理信号的事件信号种类:1-31信号是不可靠信号:信号有可能会丢失(非实时信号)1.向进程发送非实时信号(该信号没有被挂起),信号响应会嵌套(即正在响应某个函数时,有其它信号发来,进程会先去响应其它信号,结束后再继续原来的任务)。2.当进程正在响应某个信号时(该信号没有被挂起),即响应函数正在执行的过程中,有相同的n个信号相继发来,进程
分类:
系统相关 时间:
2020-02-02 18:04:31
阅读次数:
90
产生信号五种方法: 信号四要素: 编号、名称、事件、默认处理动作 信号的处理方式: Linux内核的进程控制块PCB是一个结构体,task_struct除了包含进程id,状态,工作目录,用户id,组id,文件描述符,还包含了信号相关的信息,主要指阻塞信号集和未决信号集。 阻塞信号集(信号屏蔽字):将 ...
分类:
系统相关 时间:
2019-08-08 19:18:03
阅读次数:
143
使用sleep()和usleep() 其中sleep精度是1秒,usleep精度是1微妙,具体代码就不写了。使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比较大时,sleep一般都会有超时现象。 使用信号量SIGALRM + alarm() 这种方式的精度 ...
分类:
系统相关 时间:
2019-03-24 11:08:54
阅读次数:
226
在学习sigsuspend()函数时存在一些迷惑,并不太理解书上所叙述的内容。最终,结合网上资源对该函数慢慢有了一点理解,记录下来,以备以后补充。 在《UNIX环境高级编程》中该函数的提出是在解除信号屏蔽(这里以SIGINT为例)时,信号立即发生,没有等待到pause函数执行的情况下。 sigset ...
分类:
其他好文 时间:
2018-12-11 20:00:38
阅读次数:
239
1,操作系统用信号来控制进程; 2,程序通常用信号来结束; 3,进程收到信号后后进行信号处理器; 4,大部分错误信号的默认处理器会终止程序; 5,可以用sigcation()函数替换处理器; 6,可以用raise()函数向自己发送信号; 7,间隔定时器发送SIGALRM信号; 8,alarm()函数 ...
分类:
系统相关 时间:
2018-12-03 17:20:40
阅读次数:
271
0. 前言 /proc 文件系统是一个 伪文件系统 ,它 只存在内存 当中,而不占用外存空间。 它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。 由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件 ...
分类:
其他好文 时间:
2018-11-30 18:24:15
阅读次数:
255