Linux下顯示項目創建的相關信息

 

//version.h

/*************************************************************     
    FileName : version.h 
    FileFunc : 定義頭文件    
    Version  : V0.1     
    Author   : Sunrier     
    Date     : 2012-05-09 
    Descp    : Linux下顯示項目創建的相關信息    
*************************************************************/
#ifndef   _VERSION_H
#define   _VERSION_H

#ifdef __cplusplus
extern "C" {
#endif

#ifndef PROJECT
#define PROJECT "DispProjInfo"
#endif

#ifndef VERSION 
#define VERSION "V0.1"
#endif

#ifndef UPDATE_DATE
#define UPDATE_DATE __DATE__
#endif

#ifndef UPDATE_TIME
#define UPDATE_TIME __TIME__
#endif

#ifndef LINE
#define LINE __LINE__
#endif

#ifndef FUNCTION
#define FUNCTION __FUNCTION__
#endif

#ifndef AUTHOR 
#define AUTHOR "Sunrier"
#endif

#ifndef FILENAME
#define FILENAME __FILE__
#endif


void DisplayTodayTime( void );

#ifdef __cplusplus
}
#endif

#endif


 

 

//version.c

/*************************************************************     
    FileName : version.c 
    FileFunc : 定義測試功能文件    
    Version  : V0.1     
    Author   : Sunrier     
    Date     : 2012-05-09 
    Descp    : Linux下顯示項目創建的相關信息     
*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "version.h"

void DisplayTodayTime( void )  
{  
    /*char *wday[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};*/ 
    char *wday[]={"Sunday","Monday","Tuesday","Wendesday","Thursday","Friday","Saturday"};   
    time_t timep;    
    struct tm *p;    
    time(&timep);   
    p=localtime(&timep);   
    /*printf("當前日期時間:");*/
    printf("Today Time:");
    printf ("%04d-%02d-%02d ", (1900+p->tm_year),( 1+p->tm_mon), p->tm_mday);   
    printf("%s %02d:%02d:%02d\n", wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);  
}

OR

void DisplayTodayTime( void )
{
	
	time_t timer;
	struct tm *ptm;
	char szBuffer[128];
	
	//time獲取當前的系統時間,返回的結果是一個time_t類型,其實就是一個大整數
	//其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱爲UNIX
	//系統的Epoch時間)到當前時刻的秒數。然後調用localtime將time_t所表示的CUT時間轉換
	//爲本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm類型,該類型的各數據成員
	//分別表示年月日時分秒。
	timer = time(NULL);
	
	//localtime把從1970-1-1零點零分到當前時間系統所偏移的秒數時間轉換爲日曆時間
	ptm = localtime(&timer);
	
	memset(szBuffer,0,sizeof(szBuffer));
	strftime(szBuffer, sizeof(szBuffer), "%Y-%m-%d %H:%M:%S   ", ptm);
	printf("%s \n",szBuffer);
	
}

int main (int argc,char *argv[])  
{
	
	if(argc!=2)
	{
		printf("Usage:%s error!\n",argv[0]);
		printf("WARNING:invalid option '%s' \n",argv[1]);
		printf("Try 'Version -help' for more information \n");
		exit (-1);
	}
	
	if( '-'==*argv[1])
	{
		if( 0==memcmp(argv[1],"-pro",sizeof(argv[1])) )
			printf("PROJECT:%s\n",PROJECT);
		else if( 0==memcmp(argv[1],"-ver",sizeof(argv[1])) )
			printf("VERSION:%s\n",VERSION);
		else if( 0==memcmp(argv[1],"-date",sizeof(argv[1])) )
    	printf("UPDATE_DATE:%s\n",UPDATE_DATE);
    else if( 0==memcmp(argv[1],"-file",sizeof(argv[1])) )
    	printf("FILENAME:%s\n",FILENAME);	
    else if( 0==memcmp(argv[1],"-author",sizeof(argv[1])) )
    	printf("AUTHOR:%s\n",AUTHOR);
    else if( 0==memcmp(argv[1],"-time",sizeof(argv[1])) )
    	DisplayTodayTime();		
	  else if( 0==memcmp(argv[1],"-all",sizeof(argv[1])) )
       printf("PROJECT:%s\nVERSION:%s\nUPDATE_DATE:%s\n",PROJECT,VERSION,UPDATE_DATE);		            		
    else if( 0==memcmp(argv[1],"-help",sizeof(argv[1])) )
		{
                           printf("Usage:Manager[OPTION] \n");
			printf(" -pro -- display PROJECT \n");
			printf(" -ver -- display VERSION \n");
			printf(" -date -- display UPDATE_DATE \n");
			printf(" -file -- display FILENAME \n");
			printf(" -author -- display AUTHOR \n");
			printf(" -time -- display Today Time \n");
			printf(" -all -- display all information \n");
			printf(" -help -- display help \n");
		}
		else
		{
			printf("WARNING:invalid option '%s' \n",argv[1]);
			printf("Try 'Version -help' for more information \n");
		}
		exit(0);
	}
	
	printf("WARNING:invalid option '%s' \n",argv[1]);
	printf("Try 'Version -help' for more information \n");
		
	return 0;
}


 

 

 

XXX.c

/*************************************************************     
    FileName : xxx.c 
    FileFunc : 獲取本地時間    
    Version  : V0.1     
    Author   : Sunrier     
    Date     : 2012-05-09 
    Descp    : Linux下獲取本地時間 格式YYYYMMDDHHMMSS(年月日時分秒)    
*************************************************************/
#include <stdio.h>
#include <time.h>

void GetLocalTime( char *pOutTime)
{
	time_t t;
	struct tm tm1;
	t = time(NULL);
	memcpy(&tm1,localtime(&t),sizeof(struct tm));
	sprintf(pOutTime,"%04d%02d%02d%02d%02d%02d",tm1.tm_year+1900,tm1.tm_mon+1,tm1.tm_mday,tm1.tm_hour,tm1.tm_min,tm1.tm_sec);
	//YYYYMMDDHHMMSS(年月日時分秒)
}



 

 

編譯鏈接文件:

[Sunrier@localhost Version]$ gcc -o Version version.c
[Sunrier@localhost Version]$

 

測試結果:

[Sunrier@localhost Version]$ ./Version -file
FILENAME:version.c

[Sunrier@localhost Version]$

 

[Sunrier@localhost Version]$ ./Version -time
Today Time:2012-05-09 Wendesday 13:37:04
[Sunrier@localhost Version]$

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章