时间函数
目录
8.1、alarm
8.2、setitimer
8.3、文件访问时间
8.1 alarm
软定时器
功能:专门为sigalrm信号而设,在指定的时间seconds秒后,将向进程本身发送sigalrm信号,又称为闹钟时间。
函数原型:
unsigned int alarm(unsigned int seconds);
- 1
参数释义:
seconds为零,那么进程内将不再包含任何闹钟时间。
返回值:如果调用alarm()前,进程中已经设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0
说明:进程调用alarm后,任何以前的alarm()调用都将无效。
8.2 setitimer
功能:setitimer()比alarm功能强大,支持3种类型的定时器
函数原型:
#include<sys/time.h>
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));
- 1
- 2
- 3
参数释义:
第一个参数which指定定时器类型
第二个参数是结构itimerval的一个实例,结构itimerval形式
第三个参数可不做处理。
返回值:成功返回0失败返回-1
itimer_real: 设定绝对时间;经过指定的时间后,内核将发送SIGALRM信号给本进程
itimer_virtual 设定程序执行时间,经过指定的时间后,内核将发送SIGVTALRM信号给本进程
itimer_prof 设定进程执行以及内核因本进程而消耗的时间和,经过指定的时间后,内核将发送SIGPROF信号给本进程
8.3 文件访问时间
#include<sys/types.h>
#include<utime.h>
int utime(const char *name,const struct utiimebuf *times);
//成功返回0,失败返回-1
- 1
- 2
- 3
- 4
- 5
- 6
参数释义:
如果times是一个空指针,则存取时间和修改时间都设置为当前时间
如果times是一个非空指针,则你懂得。当然,权限要够(root是肯定够了)。
此函数所用结构体:
struct utimebuf
{
time_t actime; /* access time /
time_t modtime; / modification time */
}
补上前面的代码:
alarm.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main(void)
{
int a=0;
alarm(1);
for(;;a++)
{
printf("%d\n",a);
}
return 0;
}
//可以拿去试试你的电脑能跑多少,反正我的只能四万多
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
seitimer.c
#include <stdio.h>
#include <sys/time.h>
#include <errno.h>
#include <stdlib.h>
#include <signal.h>
void myfunc()
{
int count = 0;
for(count = 0; ;count++)
{ printf("yue?\n");
}
}
int main()
{
struct itimerval run,runout; signal(SIGALRM,myfunc);
run.it_value.tv_sec = 3;
run.it_value.tv_usec = 0;
run.it_interval.tv_sec = 2;
run.it_interval.tv_usec = 0; if((setitimer(ITIMER_REAL,&run,&runout))==-1)
{
perror("setitimer error");
return -1;
} while(1);
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
//这里提一下,在Linux里面那个缓冲区是很重要的,所以那个 \n 有写没写差别很大
文章来源: lion-wu.blog.csdn.net,作者:看,未来,版权归原作者所有,如需转载,请联系作者。
原文链接:lion-wu.blog.csdn.net/article/details/103947544
- 点赞
- 收藏
- 关注作者
评论(0)