當前位置:首頁 » 編程語言 » c語言固定時間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言固定時間

發布時間: 2022-09-02 17:14:33

⑴ 在linux環境下c語言中如何讓while循環執行固定的時間如200毫秒

...
樓上的想讓你的程序變成悲劇...linux下sleep函數的參數是秒為單位的...休眠200秒...
睡眠小於1秒用usleep,單位是毫秒...

所以,樓上的程序把sleep改成usleep就可以 了...
while(1)
{
/* any thing you want to do*/
usleep(200);
}

另外我覺得你要說的好像是:希望while循環執行某些操作,執行時間到200毫秒之後退出while循環?
最簡單是用間隔定時器...
你查下這幾個函數:timer_create,timer_settime等。

時間設置比較精確,可以設置一段時間間隔,過了指定的時間之後,會給當前進程發送一個SIGALRM信號,你while循環的條件,可以在SIGALRM的信號處理函數裡面修改,這樣,到時間之後while就可以退出了....

這樣寫:
//...
...
...
static char flag=1
...
int main(void)
{
signal(SIGALRM, timer_handler);
/*
申請並且設置間隔定時器的間隔
*/

while(flag)
{
/*循環內的操作*/
}

...

return 0;
}

void timer_handler(unsigned int signal)
{
flag=0;
}

⑵ C語言固定格式輸出時間

完整代碼如下所示:

#include<stdio.h>
#include<time.h>
intmain(intargc,char*argv[])
{
time_trawtime;
structtm*timeinfo;
chartimE[80];
time(&rawtime);
timeinfo=localtime(&rawtime);
strftime(timE,80,"%a%b%d%I:%M:%S%Y",timeinfo);
printf("Localtimeis:");
printf("%s",timE);
return0;
}

⑶ C語言能實現到某一固定時間才繼續運行嗎

雖然這個最終都跟確切的系統有關~不過......有localtime啊。
你通過struct tm聲明一個變數,構造成你要的時間,然後mktime成time_t,減去當然的time(NULL),就是需要sleep的秒數~

⑷ C語言如何在每天固定時間執行某一函數,比如每天12點去執行(基於定時器setitimer和信號去處理)

不用定時器的,
寫個處理的程序,然後操作系統做一個計劃任務定時調用這個程序。

⑸ C語言如何控製程序運行的時間

利用定時器計數,
在程序中判斷,如果超過指定時間,退出。
比如:
定時器設置1秒計數一次。
第一個程序,計數達到60秒,退出。

⑹ C語言中如何控制時間高手進!

這個時間的控制,用MFC可能更容易點,用經典C語言就比較麻煩,1樓說的對,可惜你看不懂.

所以你還是先不要考慮超時的情況,先寫好程序再說

⑺ c語言時間限制

" 運行一個語句一段時間(如3分鍾)。" --
這個語句 或程序塊 需要 的執行 時間 是多少?
如果 這個 語句 或程序塊 執行 需要 的 時間 長於 3 分鍾,那麼 這個 語句 或程序塊 中 需要 嵌入 時間 測定 語句。
如果 時間 短於 3 分鍾,你需要 加入 等待。
----------
等待函數:
void wait_ms ( int ms )
{
clock_t endwait;
endwait = clock () + ms;
while (clock() < endwait) {}
}

c 語言 時間:
clock_t t0, t1,t;
int dt;
dt = 3*60*1000; // 3分鍾 == 毫秒數
if ( 滿足條件了){
t0 = clock (); //開始時刻 毫秒
t1 = t0 + dt; //目標終止 時刻
這里執行語句或程序塊,假定 時間 短於 3 分鍾
t = t1 - clock (); // 等待時間 毫秒數
wait_ms(t); // 等待
}
===============
執行語句或程序塊,假定 時間 長於 3 分鍾 , 執行語句或程序塊中要 嵌入:
t = clock();
比較 t 與 目標 t1 , if (t>=t1) 終止 程序。
===================================
一般這類程序 要用 c++ . 定時控制 用 timer ( 定時器) 或
運行 線程:
std::thread xc1 (foo,t0,3);
時間控制,到時間則 關閉線程。

⑻ C語言如何設置固定時間種子

計算機產生的隨機數並不是真正隨機的,所以叫
偽隨機數。
當逗種子地固定時,它產生的隨機數序列是不變的,例如產生10個數,這10個數大小是變化的,但只要用這個種子,每次產生的這10個數序列,是一模一樣的。

srand(time(0));
設種子,就會因時間變化,得到不同的種子,那麼隨機數序列就會變化。
time(0)
是當前時間,(精度可能是毫秒)。只要兩次跑程序啟動時間差別
超過1毫秒,兩個序列就不同了(隨機)。如果,時間差別不到1毫秒,兩個序列就沒變化。
--------
錯誤的程序:
for
(i=0;i<5;i++){
srand(time(0));
//
5次的種子若不變
printf("%d
",rand());
//
依次取
5個序列的
第一個數
}
5個數不變化。
-------------------
正確的程序:
srand(time(0));
//
設1次種子
for
(i=0;i<5;i++){
printf("%d
",rand());
//依次取1個序列的第1到第5個隨機數
}
5個數變化

⑼ C語言中如果實現--在某個固定時間執行某段特定代碼

你就讀取系統時間就可以了啊。
void gettime(struct date *t),t 存放得到的日期信息
例子:
#include <stdio.h>
#include <dos.h>
int main(void)
{
struct time t;
gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d",t.ti_hour,t.ti_min, t.ti_sec, t.ti_hund);
return 0;
}

⑽ C語言中的時間

以前實際上用過,很想對C語言中的時間函數了解多一點,趁著這個寒假,查了些資料,大概把我現在能用到的關於時間的操作在此記錄下來。通過幾個函數來熟悉C語言中對時間的操作。(註:以下程序均在VS2010上編譯通過。)①time()函數。可以通過time()函數來獲得日歷時間。其原型為:time_ttime(time_t*timer);一般參數為空,返回值類型time_t是一個長整型數,函數將返回現在的日歷時間,即從一個時間點(所有不同版本的VisualC++都是從1970年1月1日0時0分0秒)到現在的經過的秒數。例子程序:#include<stdio.h>#include<time.h>voidmain(){time_tlt;lt=time(NULL);printf("1970年1月1日0時0分0秒到現在經歷了%ld秒\n",lt);}運行結果(結果與程序運行的時間有關,貼出我此時運行出的結果):1970年1月1日0時0分0秒到現在經歷了1326975564秒請按任意鍵繼續...②clock()函數。C語言中的計時函數。函數原型為:clock_tclock(void);clock()函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元數。返回值類型clock_t也是一個長整型數。在time.h頭文件中定義了一個符號常量CLOCKS_PER_SEC,表示一秒鍾會有多少個計時單元。所以通過簡單的數學知識,可以知道在程序中用clock()/CLOCKS_PER_SEC來表示程序從開始到調用clock()函數時用了多少秒。例子程序:#include<stdio.h>#include<time.h>voidmain(){clock_tlt;for(inti=0;i<1000000000;i++);lt=clock();printf("循環執行1000000000個空操作需要%f秒\n",(double)lt/CLOCKS_PER_SEC);}運行結果(在不同的機器上運行的結果可能不一樣,下面是在我自己的筆記本上運行的結果):循環執行1000000000個空操作需要3.484000秒請按任意鍵繼續...③使用C庫函數來顯示日期和時間。首先要介紹一下C語言中的一個日期的結構體類型,tm類型。其在time.h中的定義如下:#ifndef_TM_DEFINEDstructtm{inttm_sec;inttm_min;inttm_hour;inttm_mday;inttm_mon;inttm_year;inttm_wday;inttm_yday;inttm_isdst;};#define_TM_DEFINED#endif然後可以介紹有關的函數了。time.h提供了兩種不同的函數將日歷時間(一個長整型數)轉換成我們平時看到的把年月日時分秒分開的時間格式:structtm*gmtime(consttime_t*timer);structtm*localtime(consttime_t*timer);其中gmtime()函數是將日歷時間轉換為世界標准時間(即格林尼治時間),並返回一個tm結構體來保存這個時間,而localtime()函數是將日歷時間轉換為本地時間(在中國地區獲得的本地時間會比世界標准時間晚8個小時)。例子程序:#include<stdio.h>#include<time.h>voidmain(){structtm*local;time_tt;t=time(NULL);local=localtime(&t);printf("現在北京時間是%d點\n",local->tm_hour);local=gmtime(&t);printf("世界標准時間是%d點\n",local->tm_hour);}運行結果(運行結果與運行的時間有關,我是在早上9點多鍾運行這個程序的):現在北京時間是9點世界標准時間是1點請按任意鍵繼續...這樣子我們就可以完全才輸出此刻的年月日時分秒了,當然需要逐個來輸出。其實C庫函數還提供了一個很有用的以固定的時間格式來輸出年月日時分秒的函數。這兩個函數原型如下:char*asctime(conststructtm*timeptr);char*ctime(consttime_t*timer);asctime()函數是通過tm結構來生成具有固定格式的保存時間信息的字元串,而ctime()是通過日歷時間來生成時間字元串。這樣下面的例子程序就容易理解了:#include<stdio.h>#include<time.h>voidmain(){structtm*local;time_tt;t=time(NULL);local=localtime(&t);printf(asctime(local));local=gmtime(&t);printf(asctime(local));printf(ctime(&t));}運行結果(我是在早上9點多運行這個程序的):FriJan2009:55:562012FriJan2001:55:562012FriJan2009:55:562012請按任意鍵繼續...C語言還可以以我們規定的各種形式來規定輸出時間的格式。要用到時可以查閱相關的資料,限於篇幅,就介紹到這里。④這里介紹計算持續的時間長度的函數。之前已經介紹了使用clock()函數的例子,它可以精確到毫秒級。其實我們也可以使用difftime()函數,但它只精確到秒。該函數的定義如下:doubledifftime(time_ttime1,time_ttime0);例子程序:#include<stdio.h>#include<time.h>#include<stdlib.h>voidmain(){time_tstart,end;start=time(NULL);for(inti=0;i<1000000000;i++);end=time(NULL);printf("這個循-環用了%f秒\n",difftime(end,start));}運行結果:這個循環用了3.000000秒請按任意鍵繼續...⑤最後介紹mktime()函數。原型如下:time_tmktime(structtm*timer);可以使用函數將用tm結構表示的時間轉換為日歷時間。其返回值就是轉換後的日歷時間。這樣我們就可以先制定一個分解時間,然後對這個時間進行操作。下面的例子用來計算2012年1月20日是星期幾:#include<time.h>#include<stdio.h>#include<stdlib.h>intmain(void){structtmt;time_tt_of_day;t.tm_year=2012-1900;t.tm_mon=0;t.tm_mday=20;t.tm_hour=0;t.tm_min=12;t.tm_sec=1;t.tm_isdst=1;t_of_day=mktime(&t);printf(ctime(&t_of_day));return0;}運行結果:FriJan2000:12:012012請按任意鍵繼續...