我在多线程应用程序中使用本地时间。
我必须用线程安全的版本替换它,据我了解,它称为 localtime_r。
但是,当我这样做时,由于链接失败,我无法完成构建。
我什至不确定从哪里开始寻找解决方案。
我的系统组件是:
- 芯片 - STM32(基于 ARM 的皮质)
- IDE - IAR(意法半导体微控制器的编译器和链接器)
- 操作系统 - ThreadX
我假设(尽管我不确定)这个函数通常会在与 IDE 一起提供的标准库中提供。我对么?
我是否需要将另一个库添加到我的项目中,或者它是否在项目设置中?
如果没有可行的方法将此函数“导入”到我的代码中,那么对于 localtime 函数的线程安全版本,我还有哪些其他选择?
更新:
我希望避免使用操作系统资源(即互斥体),而是调用一个标准例程,它完全符合“本地时间”的功能,只是没有它使用的静态结构(使其线程不安全)。
我看不出 localtime 一开始就使用静态结构的任何理由,所以我假设相应的 localtime_r 并没有用任何操作系统资源解决它,而只是避免使用静态结构。
如果没有这样的选择是可行的,那么我还不如自己实现它,只是我更喜欢使用已经过正确测试的东西,因为约会系统的“不规则性”。
这里的问题是,如何将 localtime_r' 链接到我的项目中(而不是如何实现 localtime_r)。
谢谢