linux里面关于time,localtime等函数的一些问题
time_tt;t=time(NULL);local=localtime(&t);这一段代码里time函数里面的NULL参数表示什么意思?还有其他的一些参数吗?还有loc...
time_t t;
t = time(NULL);
local = localtime(&t);
这一段代码里 time函数里面的NULL参数表示什么意思?还有其他的一些参数吗?
还有 localtime(&t) 为什么不能换成 localtime(t) ?跪求高手! 展开
t = time(NULL);
local = localtime(&t);
这一段代码里 time函数里面的NULL参数表示什么意思?还有其他的一些参数吗?
还有 localtime(&t) 为什么不能换成 localtime(t) ?跪求高手! 展开
展开全部
首先看看time 的原型:
time_t time(time_t *calptr); //其说明是:若成功则返回时间值,否则返回-1。时间值总是作为函数值返回。如果参数不为空(NULL),则时间值也存放在由calptr指向的单元内。(看似的确多余的,仅仅是看似~~)
第二个函数的原型:
struct tm *localtime(const time_t *calptr);//看到了把~参数是指针,所以必须要传递地址,&t取地址。 (顺带提一下~localtime是将日历时间转换成本地时间,会考虑到本地时区和夏时制标志,而与此类似的一个函数gmtime则是将日历时间转换成国际标准时间)
time_t time(time_t *calptr); //其说明是:若成功则返回时间值,否则返回-1。时间值总是作为函数值返回。如果参数不为空(NULL),则时间值也存放在由calptr指向的单元内。(看似的确多余的,仅仅是看似~~)
第二个函数的原型:
struct tm *localtime(const time_t *calptr);//看到了把~参数是指针,所以必须要传递地址,&t取地址。 (顺带提一下~localtime是将日历时间转换成本地时间,会考虑到本地时区和夏时制标志,而与此类似的一个函数gmtime则是将日历时间转换成国际标准时间)
展开全部
这些是 linux 环境下的函数接口,time 用于取 Epoch 记年以来到现在经过的秒数,Epoch 记年从 1970年1月1日开始。
localtime 用于将 前面取得的秒数,转换成你所在时区下的时间描述,譬如是多少年多少月多少日几点几分几秒。
NULL 和 & 等都是C语言的内容,要学Linux嵌入式开发,这是基础,要加油了。碰到什么问题,也可以在 JulianTec 提供的邮件列表中求助!
localtime 用于将 前面取得的秒数,转换成你所在时区下的时间描述,譬如是多少年多少月多少日几点几分几秒。
NULL 和 & 等都是C语言的内容,要学Linux嵌入式开发,这是基础,要加油了。碰到什么问题,也可以在 JulianTec 提供的邮件列表中求助!
追问
汗 我当然知道NULL 和& 了 只是不知道参数里用NULL是表示什么意思而已 、貌似除了NULL还有数字 、你能解释一下么?
追答
time 函数调用中可以用普通的数字作为参数么?应该不会,除非你传一个形如 0xAAAABBBB 的地址值给他。time 函数要求带一指向 time_t 结构体的指针作为参数。如果该参数不为NULL,那么它将得到的结果放在 该指针所指的结构体变量内;如果为NULL,表示你并不希望 让它这么做。
具体的,你可以查看它的 man page 或者 info page。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用,返回的那个struct tm指针并不是用malloc分配的,而是指向一个静态变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2楼正解,顺便说一下,返回的时间是从1900年开始计数的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询