A. linux下C語言有沒有定時調用的函數
你是指延遲函數還是定時調用,比如到11:12:13秒執行某個函數?
如果是延時函數用
usleep(usec);//微妙
sleep(sec);//秒
如果是定時執行的話,你只能開個線程或while,每隔1s判斷下當前系統時間,
structtm*ptm;
longts;
inty,m,d,h,n,s;
ts=time(NULL);
ptm=localtime(&ts);
y=ptm->tm_year+1900;//年
m=ptm->tm_mon+1;//月
d=ptm->tm_mday;//日
h=ptm->tm_hour;//時
n=ptm->tm_min;//分
s=ptm->tm_sec;//秒
照著上面的格式組成字元串進行判斷,到點了就執行就可以了
B. linux下C語言定時器(求高人指點)
可以用alarm信號做:
alarm(設置信號傳送鬧鍾)
相關函數 signal,sleep
表頭文件 #include<unistd.h>
定義函數 unsigned int alarm(unsigned int seconds);
函數說明 alarm()用來設置信號SIGALRM在經過參數seconds指定的秒數後傳送給目前的進程。如果參數seconds 為0,則之前設置的鬧鍾會被取消,並將剩下的時間返回。
返回值返回之前鬧鍾的剩餘秒數,如果之前未設鬧鍾則返回0。
#include<unistd.h>
#include<signal.h>
void handler() {
//這里讀跳變次數
}
main()
{
int i;
signal(SIGALRM,handler);//這里設置時鍾信號的響應函數
alarm(1); //這里設置每一秒鍾發送一個時鍾信號
}
C. 我想在linux用c搞個 定時程序然後可以指定時間運行程序。時間是小時和分鍾的。主要是分鍾要可以累加。比如
crontab
-e
,然後,輸入
*
*/1
*
*
*
這個是每隔一個小時,執行一次。。。
樓主需要的情況,at,crontab
都是無法完全滿足的,因為,crontab
每次執行,只能是每隔一段時間(但是間隔時間都是相同的),或者在某個時刻,樓主這種,情況很特殊,估計,需要,編寫c
程序,才可以搞定的。。。
D. 求linux下用c語言編寫的定時器程序
//一個示常式序。
#include<stdlib.h>
#include<unistd.h>
#include<signal.h>
#include<time.h>
#include<sys/time.h>
#defineN100//設置最大的定時器個數
inti=0,t=1;//i代表定時器的個數;t表示時間,逐秒遞增
structTimer//Timer結構體,用來保存一個定時器的信息
{
inttotal_time;//每隔total_time秒
intleft_time;//還剩left_time秒
intfunc;//該定時器超時,要執行的代碼的標志
}myTimer[N];//定義Timer類型的數組,用來保存所有的定時器
voidsetTimer(intt,intf)//新建一個計時器
{
structTimera;
a.total_time=t;
a.left_time=t;
a.func=f;
myTimer[i++]=a;
}
voidtimeout()//判斷定時器是否超時,以及超時時所要執行的動作
{
printf("Time:%d ",t++);
intj;
for(j=0;j<i;j++)
{
if(myTimer[j].left_time!=0)
myTimer[j].left_time--;
else
{
switch(myTimer[j].func)
{//通過匹配myTimer[j].func,判斷下一步選擇哪種操作
case1:
printf("------Timer1:--HelloAillo! ");break;
case2:
printf("------Timer2:--HelloJackie! ");break;
case3:
printf("------Timer3:--HelloPiPi! ");break;
}
myTimer[j].left_time=myTimer[j].total_time;//循環計時
}
}
}
intmain()//測試函數,定義三個定時器
{
setTimer(3,1);
setTimer(4,2);
setTimer(5,3);
signal(SIGALRM,timeout);//接到SIGALRM信號,則執行timeout函數
while(1)
{
sleep(1);//每隔一秒發送一個SIGALRM
kill(getpid(),SIGALRM);
}
exit(0);
}
E. Linux c 語言 倒計時代碼
我是windows下的dos命令
F. Linux在終端運行C程序,怎麼計算運行的時間
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double ration;
start = clock();
while( i-- );
finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "程序運行 %f 秒\n", ration );
}