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;
}