導航:首頁 > 操作系統 > linuxc計時

linuxc計時

發布時間:2022-07-15 11:03:47

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 );
}

閱讀全文

與linuxc計時相關的資料

熱點內容
php函數傳遞數組 瀏覽:629
人工峰群演算法的目標函數 瀏覽:464
如何刪加密文檔 瀏覽:103
塗鴉app一鍵執行如何刪除 瀏覽:754
安卓手機如何打開fr3文件 瀏覽:741
壓縮袋8絲和14絲是什麼意思 瀏覽:645
程序員大咖java 瀏覽:66
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:664
gz壓縮文件夾 瀏覽:179
字母h從右往左跑的c語言編程 瀏覽:127
安卓手機如何擁有蘋果手機橫條 瀏覽:765
業余編程語言哪個好學 瀏覽:137
按照文件夾分個壓縮 瀏覽:104
航空工業出版社單片機原理及應用 瀏覽:758
如何在電信app上綁定親情號 瀏覽:376
安卓的怎麼用原相機拍月亮 瀏覽:805
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343