C语言time库time()函数源码问题

小声逼逼 2018-01-20 04:49:52
前几天下载了C语言标准库的源码,注意到time.h库里time()函数源码中返回了一个-1

//time.c
#include <errno.h>
#include <time.h>

/* Return the time now, and store it in *TIMER if not NULL. */
time_t
time (time_t *timer)
{
__set_errno (ENOSYS);

if (timer != NULL)
*timer = (time_t) -1;
return (time_t) -1;
}
libc_hidden_def (time)

stub_warning (time)

这个return (time_t) -1;是什么意思,为什么这样就能返回当前的时间,请教各位巨巨解答。谢谢
...全文
1421 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2018-01-21
  • 打赏
  • 举报
回复
Return value Current calendar time encoded as time_t object on success, (time_t)(-1) on error. If arg is not a null pointer, the return value is also stored in the object pointed to by arg.
paschen 2018-01-21
  • 打赏
  • 举报
回复
(time_t) -1 表示的是出错的情况,此时这个值不作为一个时间,你可以检没函数返回值,如果为(time_t)(-1)表示函数执行失败。 http://en.cppreference.com/w/c/chrono/time
真相重于对错 2018-01-20
  • 打赏
  • 举报
回复
baidu一下 time_t; struct tm; time()函数 和gmtime()函数 另外给你一段代码,比较一下p1,p2,t1,t2 是否相等,另外两次cout输出是否一样! tm *p1,*p2; time_t t1,t2; t1= time(NULL); cout<<ctime(&t1)<<endl; t2= time(NULL); cout<<ctime(&t2)<<endl; p1 = gmtime(&t1); p2 = gmtime(&t2);

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧