主要是通過utime()這個函式實現的
標頭檔案:
#include
#include
函式定義:
int
utime
(const
char
* filename,
struct utimbuf * buf)
;
函式說明:utime()用來修改引數filename 檔案所屬的inode 訪問時間。結構utimbuf 定義如下:
struct utimbuf
;
返回值:如果引數buf 為空指標(null), 則該檔案的訪問時間和更改時間全部會設為目前時間.。執行成功則返回0,失敗返回-1,錯誤**存於errno。
錯誤**:
實現**
#include
#include
#include
#include
#include
void
set_time
(const
char
* filename,
const
char
* time)
;strncpy
(year,time,4)
;char month[3]
=;strncpy
(month,time+4,
2);char day[3]
=;strncpy
(day,time+6,
2);char hour[3]
=;strncpy
(hour,time+8,
2);char min[3]
=;strncpy
(min,time+10,
2);char sec[3]
=;strncpy
(sec,time+12,
2);struct tm t;
t.tm_year =
atoi
(year)
-1900
; t.tm_mon =
atoi
(month)-1
; t.tm_mday =
atoi
(day)
; t.tm_hour =
atoi
(hour)
; t.tm_min =
atoi
(min)
; t.tm_sec =
atoi
(sec)
; time_t newt =
mktime
(&t)
;struct utimbuf newtime =
;utime
(filename,
&newtime);}
intmain
(int argc,
char
const
*argv)
set_time
(argv[1]
,argv[2]
);return0;
}
c/c++中表示時間的型別有兩種:time_t 和tm
time_t 這種型別用來儲存從2023年到現在經過了多少秒
tm則是乙個結構體型別,直接儲存年月日時分秒等
struct tm
;
需要特別注意的是,年份是從2023年起至今多少年,而不是直接儲存如2023年,月份從0開始的,0表示一月,星期也是從0開始的, 0表示星期日,1表示星期一。
由於utime( )的結構引數utimebuf儲存的是time_t型別的成員,所以要進行轉換
time_t mktime
(struct tm* timeptr)
;
Delphi 更改檔案時間
總是會遇到檔案拷貝之後需要更改檔案時間的要求。這裡就小小的記錄一下。語言 delphi 功能 檔案的時間更新成現在系統的時間。procedure setfiledatetime sfilename string varfs tfilestream ft tfiletime syst systemti...
linux C之alarm函式 更改
alarm也稱為鬧鐘函式,alarm 用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seconds為0,則之前設定的鬧鐘會被取消,並將剩下的時間返回。要注意的是,乙個程序只能有乙個鬧鐘時間,如果在呼叫alarm之前已設定過鬧鐘時間,則任何以前的鬧鐘時間都被新...
linux C之alarm函式 更改
alarm也稱為鬧鐘函式,alarm 用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seconds為0,則之前設定的鬧鐘會被取消,並將剩下的時間返回。要注意的是,乙個程序只能有乙個鬧鐘時間,如果在呼叫alarm之前已設定過鬧鐘時間,則任何以前的鬧鐘時間都被新...