Linux多进程14-alarm函数
#include <unistd.h>
unsigned int alarm(unsigned int seconds);
- 功能: 设置定时器, 函数调用后开始倒计时, 当倒计时为0时,
函数会给当前进程发送一个信号:SIGALARM
- 参数:
seconds: 倒计时的时长, 单位:秒.
- 如果参数为0, 定时器无效(不进行倒计时, 不发信号)
- alarm(0); 取消一个定时器
- 返回值:
- 之前没定时器, 返回0
- 之前有定时器, 返回之前的定时器剩余的时间
- SIGALARM: 默认终止当前的进程, 每一个进程都有且只有唯一的一个定时器
alarm(10); //返回0
过了1秒
alarm(5); //返回上一个定时器剩余时间:9
alarm(100); //该函数不阻塞
示例代码
#include <unistd.h>
#include <stdio.h>
int main(int argc, char const *argv[])
{
int seconds = alarm(5);
printf("seconds = %d\n", seconds); //0
sleep(2);
seconds = alarm(2);
printf("seconds = %d\n", seconds); //3
//10s 结束后, 程序会给当前进程发送SIGALARM信号, 程序终止, 不会死循环
while (1)
{
}
return 0;
}
运行
$./alarm
seconds = 0
seconds = 3
闹钟
案例: 计算机一秒钟能数多少个数
// 1s 电脑能数多少个数
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[])
{
alarm(1);
int i = 0;
while (1)
{
printf("%i\n", i++);
}
return 0;
}
使用重定向到文件节省IO
$./alarmC >> alarmC.txt
闹钟
本文作者:言叶以上
本文链接:https://www.cnblogs.com/anqwjoe/p/17409743.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2018-05-17 Vue.js 基础知识