导航:首页 > 编程系统 > linuxc时间比较

linuxc时间比较

发布时间:2023-01-13 06:53:14

A. linux在终端运行C程序,怎么计算运行的时间

#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()系统调用来获取系统时间,然后减去之前记录的时间就得到了时间差

阅读全文

与linuxc时间比较相关的资料

热点内容
计算机网络章节练习 浏览:999
单片机的外部中断程序 浏览:48
表格批量更名找不到指定文件 浏览:869
js的elseif 浏览:584
3dmaxvray视频教程 浏览:905
imgtool工具中文版 浏览:539
java帮助文件在哪里 浏览:965
win10切换输入语言 浏览:696
haier电视网络用不了怎么办 浏览:361
苹果6手机id怎么更改 浏览:179
米家扫地机器人下载什么app 浏览:82
如何在编程猫代码岛20种树 浏览:915
手机基础信息存储在哪个文件 浏览:726
如何查找手机备份文件 浏览:792
内存清理工具formac 浏览:323
iphone过滤骚扰电话 浏览:981
wap网络如何使用微信 浏览:699
手机迅雷应用盒子在哪个文件夹 浏览:351
windows8网络连接 浏览:442
怎么快速增加qq群人数 浏览:919

友情链接