1. linux C 獲取時間以及計算時間差
可以用time()系統調用來獲取系統時間,然後減去之前記錄的時間就得到了時間差
2. 在linux中(用c語言),如何輸出文件的許可權,所有者,日期等內容
可以通過新建一個進程,然後使用exec()函數(記得好像是這函數)實現的~~~
3. 在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;
}
4. linux下C語言怎麼獲取文件創建時間
可以通過stat來讀取文件,就可以獲取到相關的文件信息。
char buf[65];
struct stat;
stat("c:\\test.txt", &sb);
sb.st_ctime 就是文件的創建時間。你可以用專localtime()
轉換成立能夠識屬別的時間。
struct tm* t=localtime(sb.st_ctime);
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d",
t->tm_year+1900, t->tm_mon+1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);
5. c程序如何通過參數獲得linux系統啟動時間
uptime是來linux命令里獲取有關系自統時間的。他就是到/proc/uptime找出一些信息計算的。
你也可以
/proc/uptime 提供了系統最近一次啟動以來運行的時間,
讀取這個文件然後自己計算,uptime里的第一個時間是up後的seconds,自己折算為天數等。
6. 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類型變數。
7. linux find命令查找當前目錄下7天前的文件但排除所有目錄
find命令說明:
find . -type d
從當前目錄下,查找所有的目錄
find . -type f
從當前目錄下,查找所有的非目錄文件
如果需要查找n天前的文件,在linux下,文件時間有三個,訪問時間、修改時間、狀態改動時間:
atime,為accesstime的縮寫,顯示的是文件中的數據最後被訪問的時間,比如被系統的進程直接使用或者通過一些命令和腳本間接使用。(執行一些可執行文件、腳本)
mtime,為modifytime的縮寫,顯示的是文件的內容被改變時的最後時間,比如用vi編輯時就會改變。(也就是Block的內容)
ctime,為changetime的縮寫,顯示的是文件的許可權,擁有者,所屬的組,鏈接數發生改變時的時間。當然當內容改變時,也會改變。(也就是Inode內容發生改變和Block內容發生改變時)
find命令中,相對應的查詢命令為:
-atime n 按天查,注意是精確到當前時間點
File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.
-cmin n
File's status was last changed n minutes ago. 按分鍾查
-mtime n 按天查,注意是精確到當前時間點
File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times.
如,查詢7天前,文件內容發生變化的語句為:
find . -type f -mtime +7
PS:.表示當前目錄
8. c語言linux幫寫小段取當前時間的code
linxu上有提供相應的c語言的介面
比如time函數
使用time函數可以獲取一個時間專戳
該時間戳是1870年1月1日0:0:0至現在的秒屬數
然後我們可以使用linux提供的一些轉換介面將其轉換為時分秒的格式
比如ctime或者也可以使用gmtime或者localtime將其轉換為struct tm結構體的數據
我們同樣也可以使用gettimeofday函數來獲取時間
比如一個簡單的代碼實現如下
#include<stdio.h>
#include<time.h>
#include<string.h>
intmain(intargc,char**argv)
{
time_tt;
structtm*m;
if((t=time(NULL))==(time_t)-1)
{
perror("time");
return-1;
}
m=localtime(&t);
printf("%.2d:%.2d:%.2d ",m->tm_hour,m->tm_min,m->tm_sec);
return0;
}