#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 );  
}
B. Linux下C語言獲得系統時間的方法
沒有完整程序, 不過能提供一點資料
int gettimeofday(struct timeval * tv,struct timezone *tz);
這個函數可以獲取當前時間, 貌似只要第一個結構體就行了
struct timeval
{
time_t tv_sec; //秒 [long int]
suseconds_t tv_usec; //微秒 [long int], (10E-6 second)
};
struct timeval
{
long tv_sec;
long tv_usec;
};
然後取微秒的前三位就是小數了, 之後把秒 tv_sec 轉化為 tm 格式, 參數用秒的指針就行
struct tm * gmtime(const time_t * t); 
//轉換成格林威治時間。有時稱為GMT或UTC。 
struct tm * localtime(const time_t *t); 
//轉換成本地時間。它可以透過修改TZ環境變數來在一台機器中,不同使用者表示不同時間.
下面是tm的部分參數
int tm_sec; //tm_sec表「秒」數,在[0,61]之間,多出來的兩秒是用來處理跳秒問題用的。/* Seconds: 0-59 (K&R says 0-61?) */
int tm_min; //tm_min表「分」數,在[0,59]之間。
int tm_hour; //tm_hour表「時」數,在[0,23]之間。
int tm_mday; //tm_mday表「本月第幾日」,在[1,31]之間。
int tm_mon; //tm_mon表「本年第幾月」,在[0,11]之間。
int tm_year; //tm_year要加1900表示那一年。 /* /* 年份,其值從1900開始 */*/
int tm_wday; //tm_wday表「本周第幾日」,在[0,6]之間。 /* Days since Sunday (0-6) */ /*其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; //tm_yday表「本年第幾日」,在[0,365]之間,閏年有366日。 /*其中0代表1月1日,1代表1月2日,以此類推 */*/
int tm_isdst; //tm_isdst表是否為「日光節約時間」
------------------------------華麗麗的分割線--------------------------------------------------
由於很長時間沒編程了, 也沒有Linux環境, 我就簡單寫幾行代碼, 僅作參考
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include<unistd.h>
//這四個不一定夠用了
struct timeval tv;
struct timezone tz;
struct tm * p_tm;
//變數沒有初始化習慣不好,不要學
gettimeofday(&tv, &tz);
p_tm = gmtime( (const time_t *)&tv.tv_sec );
字元串的組裝尤其格式問題自己解決吧
年  p_tm->tm_year+ 1900
月  p_tm->tm_mon+ 1
日  p_tm->tm_mday
時  p_tm->tm_hour+ 1
分  p_tm->tm_min+ 1
秒  p_tm->tm_sec+ 1
小數點後面的部分,注意不夠三位還是前面填充0  tv.tv_sec/1000
C. 在linux下,對比兩個文件的時間,哪個更新,用c寫個吧。例如,文件A的mtime是19901220122222 精確到秒。
時間通過一個約定的類型time_t處理,這是一個大到可以容納以秒計算日期和時間的整數類型。在linux系統中,它是一個長整形,即使是32位長整型,也可以用到2038年。到那時我們希望使用64位的系統解決這個問題。
不知道你到底要問什麼問題,是比較兩個文件最後修改時間,還是計算一個文件最後修改時間到「現在」的秒數。下面給出比較兩個文件時間的代碼:
#include<stdio.h>
#include<stdlib.h>
#include<sys/stat.h>
int	main(int argc,char *argv[])
{
	        if(argc!=3)
	        {
		                fprintf(stderr,"usage: %s <filepath> <filepath>\n",argv[0]);
		                exit(1);
	        }
	        struct	stat	buf1;
	        struct	stat	buf2;
	        if(lstat(argv[1],&buf1)<0 || lstat(argv[2],&buf2)<0)
	        {
		                perror("lstat error");
		                exit(2);
	        }
        /* print time */
	        printf("%s: %ld	%s: %ld\n",argv[1],buf1.st_mtime,argv[2],buf2.st_mtime);
	        /* print time difference */
	        printf("%ld\n",buf1.st_mtime-buf2.st_mtime);
	        return	0;
}
D. linux c如何實現時間間隔事件
1)阻塞式時間間隔,
  ...
  sleep( interval )  //其中變數interval是秒的數量。
  //do another thing
2)非阻塞式,
time_t    tStart = time(NULL);
...
...
...
if( time(NULL)-tStart >interval )
{
       //do another thing
      tStart = time(NULL);
}
...
E. linux下c/c++時間處理函數asctime()
輸出語句位置錯了。
你算出時間就輸出。
就同  a=1;a=2; 一樣,a變2後輸出,當然是2。
========
time(&t);
puts(ctime(&t));   // 輸出 當地時間
p=gmtime(&t);   //  計算 UTC 時間
puts(asctime(p));  // 按 ASCII 輸出 UTC 時間
puts(asctime(localtime ( &t)));  // 按 ASCII 輸出 當地  時間
F. 用linux C實現當前系統時間後移24小時以後的時間(14位,精確到秒)
#include <stdio.h>
#include <time.h>
int main(void)
{
    time_t tnow;
    struct tm *tmnow = NULL;
    struct tm *tm24h = NULL;
    time(&tnow);
    tmnow = localtime(&tnow);//當前時間
    fprintf(stderr,"當前時間為:%d年%02d月%02d日,%02d時%02d分%02d秒\n",
            tmnow->tm_year+1900,tmnow->tm_mon,tmnow->tm_mday,
            tmnow->tm_hour,tmnow->tm_min,tmnow->tm_sec);   
                          
    tnow += 24*60*60;
    tm24h = localtime(&tnow);
    fprintf(stderr,"24H後時間為:%d年%02d月%02d日,%02d時%02d分%02d秒\n",
            tm24h->tm_year+1900,tm24h->tm_mon,tm24h->tm_mday,
            tm24h->tm_hour,tm24h->tm_min,tm24h->tm_sec);
    return 0;
}
G. 如何計算linux下C程序的運行時間用time ./abc 這個得到的都是什麼時間呢
不知道你是不是學習編程的,如果不是就沒必要看了。
1.PID是進程標識號,它是一版個進程的唯一性標識。PPID是該進權程父進程的進程標識號。
2.fork和exec和pid完全就是2件事情不能混為一談。fork是一個linux庫函數。他是用來創建一個新的進程。至於exec是一個系列函數,C標准庫函數,用來改變進程上下文的。2者結合使用可以創建一個新的進程。
3.如果創建新的進程,一般是用fork,他會返回這個被創建進程的PID,你可以通過PID找到這個進程。
H. linux怎麼用c獲取當前時間
Linux C編程獲取當前時間用time這個函數,time函數會返回一個time_t類型的時間回戳(這個time_t類型實際上是一個長整型,定義答在time.h頭文件中)。time函數的函數原型是這樣的:
time_t time(time_t *tloc);
使用time函數需要包含time.h頭文件:
#include <time.h>
調用time函數的代碼是這樣的:
time_t t;
t=time((time_t *) 0);
因為time函數參數的作用和返回值一樣,只是用於接收時間戳,所以這里調用time函數可以傳入一個空指針,表示只用它的返回值,不用指針參數來接收時間戳。
因為time函數只是返回一個時間戳,如果想列印直觀的時間信息,可以把剛才的time_t作為參數調用ctime函數,ctime函數會返回一個字元串,ctime函數的調用是這樣的:
printf("The time and date is: %s", ctime(&t));
t就是剛才調用time函數返回的time_t類型變數。
I. 同一段c語言代碼,Linux和windows下運算時間為何這么大
這有關操作系統中的進程管理.
拉高CPU運行,所指的其實就是提高優先順序,平常使用的都是相同優先順序進程,
你提高優先順序後,CPU就多跑你的進程,
而windows提高優先順序的函數請參考windows下相關API
兩個系統為什麼不同,要看到底有多少相同或更高級別任務運行,windows任務較多,所以跑到你的進程就比較少.這個你最好看看任務數量.
J. linux C 獲取時間以及計算時間差
可以用time()系統調用來獲取系統時間,然後減去之前記錄的時間就得到了時間差