当前位置:首页 > 科技 > 正文内容

Linux下用C获取当前时间命令是什么(linux输出当前时间的步骤)

2019-06-28 20:30:11科技551

大家好,今天就和毛毛一起来看看这个问题吧 。linux输出当前时间的步骤,Linux下用C获取当前时间命令是什么很多人还不知道,现在让我们一起来看看吧!

在Linux下用C获取当前时间,如下:

Linux下用C获取当前时间命令是什么(linux输出当前时间的步骤)

代码(可以将clock_gettime改为time(NULL))

void getNowTime()

{

timespec时间;

clock_gettime(CLOCK_REALTIME,time);//获取从1970年到现在的秒数

tm nowTime

localtime_r(time.tv_sec,now time);

充电电流[1024];

sprintf(当前,'dddd:d:d',nowTime.tm_year 1900,nowTime.tm_mon,nowTime.tm_mday,

nowTime.tm_hour,nowTime.tm_min,now time . TM _ sec);

}

分析:

clock_gettime()

函数' clock_gettime '是一个基于Linux C语言的时间函数,可以用来计算精度和纳秒。

语法:

#包括

int clock _ gettime(clock id _ t clk _ id,struct timespec * TP);

参数:

由clk_id指定的时钟时间由clk_id :检索和设置。

CLOCK_REALTIME:系统实时时间随着系统实时时间的变化而变化,即从UTC 1970-1-1 0:033600开始。在中间时间,如果系统时间被用户改成别的,对应的时间也会随之改变。

CLOCK_MONOTONIC:从系统启动的那一刻开始计时,不受用户改变系统时间的影响。

CLOCK_PROCESS_CPUTIME_ID:该进程花费到当前代码系统CPU的时间。

CLOCK_THREAD_CPUTIME_ID:该线程花费在当前代码系统CPU上的时间。

结构

{

time _ t tv _ sec/*秒*/

长tv _ nsec/*纳秒*/

};

本地时间()

Localtime是将1970年1月1日0: 00到当前时间的秒转换为本地时间。

语法

注意:该函数得到的tm结构的时间是日历时间。

方法: struct TM *本地时间(const time _ t * clock);

返回值:返回指向tm结构的指针。tm结构是在time.h中定义的结构,用于存储每个时间量(年、月、日等。)分开。

示例1:

#包括

#包括

#包括

int main(void)

{

time_t定时器;//time_t是长整型。

struct tm * tblock

timer=time(空);

tblock=localtime(定时器);

printf('本地时间是: %s\n ',ASC time(t block));

返回0;

}

执行结果:

当地时间是2009年2月16日星期一11:293:26

示例2:

上面的示例使用了asctime函数,下面的示例可以在不使用该函数的情况下获取当前系统时间。注意年份加1900,月份加1。

#包括

#包括

int main()

{

struct TM * t;

tt时间;

时间(TT);

t=本地时间(TT);

Printf (D:D3360D \ n ',T-TM _ YEAR 1900,T-TM _ MON1,T-TM _ MDAY,T-TM _ hour,T-TM _ min,T-TM _ sec);

返回0;

  localtime()与localtime_r()的区别

  localtime():

  #include

  #include

  #include

  #include

  using namespace std;

  int main(int argc, char *argv[])

  {

  time_t tNow =time(NULL);

  time_t tEnd = tNow + 1800;

  //注意下面两行的区别

  struct tm* ptm = localtime(&tNow);

  struct tm* ptmEnd = localtime(&tEnd);

  char szTmp[50] = {0};

  strftime(szTmp,50,"%H:%M:%S",ptm);

  char szEnd[50] = {0};

  strftime(szEnd,50,"%H:%M:%S",ptmEnd);

  printf("%s /n",szTmp);

  printf("%s /n",szEnd);

  system("PAUSE");

  return EXIT_SUCCESS;

  }

  最后出来的结果是:

  21:18:39

  21:18:39

  和最初想法不一致。

  查阅localtime的文档,发现这段话:

  This structure is statically allocated and shared by the functions gmtime and localtime. Each time either one of these functions is called the content of this structure is overwritten.

  也就是说每次只能同时使用localtime()函数一次,要不就会被重写!

  The localtime() function need not be reentrant. A function that is not required to be reentrant is not required to be thread-safe.

  因此localtime()不是可重入的。同时libc里提供了一个可重入版的函数localtime_r();

  Unlike localtime(), the reentrant version is not required to set tzname。

  修改程序:(localtime_r())

  #include

  #include

  #include

  #include

  using namespace std;

  int main(int argc, char *argv[])

  {

  time_t tNow =time(NULL);

  time_t tEnd = tNow + 1800;

  //在这里修改程序

  //struct tm* ptm = localtime(&tNow);

  //struct tm* ptmEnd = localtime(&tEnd);

  struct tm ptm = { 0 };

  struct tm ptmEnd = { 0 };

  localtime_r(&tNow, &ptm);

  localtime_r(&tEnd, &ptmEnd);

  char szTmp[50] = {0};

  strftime(szTmp,50,"%H:%M:%S",&ptm);

  char szEnd[50] = {0};

  strftime(szEnd,50,"%H:%M:%S",&ptmEnd);

  printf("%s /n",szTmp);

  printf("%s /n",szEnd);

  system("PAUSE");

  return EXIT_SUCCESS;

  }

  最后出来的结果是:

  10:29:06

  10:59:06

  tm

  struct tm {

  int tm_sec; /* 秒 – 取值区间为[0,59] */

  int tm_min; /* 分 - 取值区间为[0,59] */

  int tm_hour; /* 时 - 取值区间为[0,23] */

  int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */

  int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */

  int tm_year; /* 年份,其值等于实际年份减去1900 */

  int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 */

  int tm_yday; /* 从每年1月1日开始的天数– 取值区间[0,365],其中0代表1月1日 */

  int tm_isdst; /* 夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0 */

  };

  time 函数

  返回:1970-1-1, 00:00:00以来经过的秒数

  原型: time_t time(time_t *calptr)

  结果可以通过返回值,也可以通过参数得到,见实例

  头文件

  返回值:

  成功:秒数,从1970-1-1,00:00:00 可以当成整型输出或用于其它函数

  失败:-1

  time_t now;

  time(&now);// 等同于now = time(NULL)

  printf("now time is %d\n", now);

  补充:Linux基本命令

  1.ls命令:

  格式::ls [选项] [目录或文件]

  功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。

  常用选项:

  -a :列出目录下的所有文件,包括以 . 开头的隐含文件。

  -d :将目录像文件一样显示,而不是显示其他文件。

  -i :输出文件的i节点的索引信息。

  -k :以k字节的形式表示文件的大小。

  -l :列出文件的详细信息。

  -n :用数字的UID,GID代替名称。

  -F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。

  2.cd命令

  格式:cd [目录名称]

  常用选项:

  cd .. 返回上一级目录。

  cd ../.. 将当前目录向上移动两级。

  cd - 返回最近访问目录。

  3.pwd命令

  格式: pwd

  功能:显示出当前工作目录的绝对路径。

  相关阅读:Linux主要特性

  完全兼容POSIX1.0标准

  这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

  多用户、多任务

  Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

  良好的界面

  Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

  支持多种平台

  Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

Linux下用C获取当前时间相关文章:

1.linux shell获取当前时间命令

2.Linux C语言时间函数

3.linux查看java进程命令

4.Linux下如何编写第一个C语言hello world程序

5.Linux C语言怎样使用文本编辑器

这篇文章到此就结束,希望能帮助到大家。

扫描二维码推送至手机访问。

版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!

本文链接:https://www.xixia168.com/n/kj/10589.html

标签: 时间步骤
分享给朋友:

“Linux下用C获取当前时间命令是什么(linux输出当前时间的步骤)” 的相关文章

每隔几年出现一次闰年(闰年几年一次)

每隔几年出现一次闰年(闰年几年一次)

大家好,今天就和丹尼一起来看看这个问题吧 。闰年几年一次,每隔几年出现一次闰年很多人还不知道,现在让我们一起来看看吧!  一、  闰年几年一次  闰年是公历中的名词,分为普通闰年和世纪闰年。普通闰年是4年一次,公历年份是4的倍数的,且不是100的倍数,为普通闰年。世纪闰年是400年一次,公历年份是整...

10月有哪些节日全部(十月份节日有哪些)

10月有哪些节日全部(十月份节日有哪些)

大家好,今天就和小白一起来看看这个问题吧 。十月份节日有哪些,10月有哪些节日全部很多人还不知道,现在让我们一起来看看吧!  一、十月份节日有哪些  10月1日:“十.一”国庆节、国际音乐节、国际老年人日  10月2日:国际和平与民主自由斗争日、国际非暴力日  10月4日:世界动物日  10月4-1...

大暑和小暑有什么区别(小暑和大暑是什么意思)

大暑和小暑有什么区别(小暑和大暑是什么意思)

大家好,今天就和猫猫一起来看看这个问题吧 。小暑和大暑是什么意思,大暑和小暑有什么区别很多人还不知道,现在让我们一起来看看吧!  一、小暑和大暑是什么意思  暑,表示炎热的意思,小暑为小热,还不十分热。小暑是相对大暑而言,古人认为小暑期间,还不是一年中最热的时候,故称为小暑。小暑意指天气开始炎热,但...

为什么三月三要煮鸡蛋(三月三煮鸡蛋的来历)

为什么三月三要煮鸡蛋(三月三煮鸡蛋的来历)

大家好,今天就和兔兔一起来看看这个问题吧 。三月三煮鸡蛋的来历,为什么三月三要煮鸡蛋很多人还不知道,现在让我们一起来看看吧!    三月三煮鸡蛋的来历源于古代楚地人们因为风吹雨打,头痛病很常见。三月初三,神农路过云梦泽(今孝感),见乡民头疼难耐,他找来野鸡蛋和地菜,煮给人们充饥。当人们吃了以后,头不...

白色情人节翻译英文(白色情人节的英文怎么写)

白色情人节翻译英文(白色情人节的英文怎么写)

大家好,今天就和毛毛一起来看看这个问题吧 。白色情人节的英文怎么写,白色情人节翻译英文很多人还不知道,现在让我们一起来看看吧!  导语:在每个月的14号都有一个独特的情人节,在3月即将开始的就是白色情人节。虽然这个节日就要到来了,但是很多人都不了解这个节日。白色情人节的英文怎么写?下面我们来看看白色...

美国圣诞节是过年吗(美国圣诞节放假几天)

美国圣诞节是过年吗(美国圣诞节放假几天)

大家好,今天就和小月一起来看看这个问题吧 。美国圣诞节放假几天,美国圣诞节是过年吗很多人还不知道,现在让我们一起来看看吧!  一、  美国圣诞节放假几天  美国圣诞节放假安排一般是12月25日一直到1月1日,这一周的时间里,大家会先一起庆祝圣诞节,然后再迎接新的一年的来到。二、  美国圣诞节假期有多...