jki*_*gel 3 c malloc struct pointers
我开始在C中学习Linux编程,我遇到了以下问题:
time_t now;
struct tm *local_time;
now = time(NULL);
local_time = localtime(&now);
Run Code Online (Sandbox Code Playgroud)
该函数localtime是Linux API的一部分,接受指向time_t哪个指针很好,但为什么它返回一个指向tmstruct 的指针?
我的问题是tm结构初始化后如何管理?
如果localtime静态分配结构,则不能保证结构不会随着程序的进行而被覆盖,如果tm结构是动态分配的,那么程序员必须free不再需要调用结构.
那么返回指针的C函数的正确阶段是什么?
谢谢!
根据当地时间表(为清晰起见添加了粗体和斜体):
localtime()函数将日历时间timep转换为细分时间表示,相对于用户指定的时区表示.该函数就像调用tzset(3)一样,并将外部变量tzname设置为当前时区的信息,时区以协调世界时(UTC)和本地标准时间(以秒为单位)之间的差异,并将日光设置为非零值(如果是日光)储蓄时间规则适用于一年中的某些时段.返回值指向静态分配的结构,该结构可能被后续调用任何日期和时间函数覆盖. localtime_r()函数执行相同操作,但将数据存储在用户提供的结构中.它不需要设置tzname,timezone和daylight.
粗体部分表示返回值的行为与您猜测的完全相同,后续调用可能会覆盖先前返回的结构.
您需要立即缓存生成的结构或使用斜体部分中提到的函数.
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |