int setitimer(int which,const struct itimerval *new_value,struct itimer_itimerval *old_value) 参数1:设计哪一个时钟,ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF 参数2:设计时间周期,current value 初相位,递减为0后发送信号,interval的值赋给value 原子化 秒+微秒级单位 最大的好处是:误差不累积。服务器,一直运行。


修改slowcat.c alarm改为setitimer函数

struct itimer_val itv;
//初始化成员
itv.it_interval.tv_sec=1;
itv.it_interval.tv_usec=0;
itv.it_value.tv_sec=0;
itv.it_value.tv_usec=0;
if(setitimer(ITIMER_REAL,&itv,NULL)<0)
{
	perror("setitimer()");
	exit(1);
}
 

abort

发送abort信号,结束进程,core dump。出错现场 得到。


system

调用shell。block 阻塞一个信号,忽略两个信号。/bin/sh -c SIGCHILD SIGINT SIGQUIT 定死的内容。 fork exec


sleep

alarm+pause的封装 不好。

当前是在nanosleep封装的。时间控制。nanosleep select函数的副作用