Linux的时间函数
本篇文章始于2023年7月19日下午
time
函数原型
获取自 1970 年 1月 1 日早晨零点到现在的秒数,也叫做
1 |
|
使用方法
如果time函数的参数timep为NULL,那么time函数会返回自 1970 年 1月 1 日早晨零点到现在的秒数;
1 |
|
如果time函数的参数不为NULL,那么time函数会把自 1970 年 1月 1 日早晨零点到现在的秒数赋值给timep指向的time_t类型变量
1 |
|
建议使用time(NULL),因为这样可以减少出错的可能性,并且使用起来更简单
ctime
函数原型
将time_t转换成可打印格式,所谓可打印格式类似于“Wed Jul 19 01:59:16 2023”
1 |
|
使用方法
把一个指向 time_t 的指针作为 timep 参数传入函数 ctime(),将返回一个长达 26 字节的字符串,内含标准格式的日期和时间
1 |
|
疑惑
为什么ctime函数要用一个指针作为参数,这样不是很麻烦吗?
这是因为ctime
函数需要修改一个静态缓冲区中的内容,并返回指向该缓冲区的指针。这个缓冲区包含了一个字符串表示的时间。通过将时间的指针传递给ctime
函数,函数可以直接在缓冲区中进行修改,然后返回指向缓冲区的指针,以便用户可以使用这个字符串。
也就是说,通过用指针作为参数,ctime函数就不需要拷贝一份time_t,再根据这副本来修改静态缓冲区的内容,而是可以直接通过指针找到time_t来修改静态缓冲区的内容。这样可以节省内存空间和提高运行效率。
需要注意的是,ctime
函数在每次调用时都会使用同一个静态缓冲区,因此如果多次调用ctime
函数,后续的调用会覆盖前面调用的结果。如果需要保存多个时间字符串,可以使用localtime
或gmtime
函数进行转换,并使用不同的缓冲区来存储结果。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 巨龙之路!
评论
ValineDisqus