Я использую локальное время в многопоточном приложении.
Я должен заменить его потокобезопасной версией, которая, насколько я понимаю, называется localtime_r.
Однако, когда я это делаю, я не могу завершить сборку из-за сбоя привязки.
Я даже не знаю, с чего начать поиск решения.
Компоненты моей системы:
- Чип - STM32 (кортекс на базе ARM)
- IDE - IAR (компилятор и компоновщик для ST-микроконтроллеров)
- ОС — ThreadX
Я предполагаю (хотя я не уверен в этом), что эта функция обычно предоставляется в стандартных библиотеках, поставляемых вместе с IDE. Я прав?
Есть ли еще одна библиотека, которую мне нужно добавить в мой проект, или это что-то в настройках проекта?
Если нет жизнеспособного способа «импортировать» эту функцию в мой код, какие еще варианты у меня есть для потокобезопасной версии функции локального времени?
ОБНОВЛЕНИЕ:
Я стараюсь избегать использования ресурсов ОС (т. е. мьютекса) и вместо этого вызывать стандартную процедуру, которая делает именно то, что делает «локальное время», только без статической структуры, которую она использует (что делает ее небезопасной для потоков).
Я не вижу причин, по которым localtime для начала будет использовать статическую структуру, поэтому я предполагаю, что соответствующий localtime_r не решает ее с помощью каких-либо ресурсов ОС, а просто воздерживается от использования статической структуры.
Если такой вариант невозможен, то я мог бы реализовать его сам, только я предпочитаю использовать то, что уже проверено должным образом из-за «неправильности» системы датирования.
Вопрос здесь в том, как связать localtime_r с моим проектом (НЕ как реализовать localtime_r).
Спасибо