农企新闻网

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

发布者:丁书一
导读大家好,农企新闻小编来为大家解答以上问题。linux输出当前时间的步骤,Linux下用C获取当前时间命令是什么很多人还不知道,现在让我们一起来看看吧!在Linux下用C获取当前时间,如下代码(可以将

大家好,农企新闻小编来为大家解答以上问题。linux输出当前时间的步骤,Linux下用C获取当前时间命令是什么很多人还不知道,现在让我们一起来看看吧!

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

代码(可以将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('本地时间是: %sn ',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;

  int tm_min;

  int tm_hour;

  int tm_mday;

  int tm_mon;

  int tm_year;

  int tm_wday;

  int tm_yday;

  int tm_isdst;

  };

  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 %dn", 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语言怎样使用文本编辑器