Вопросы к Поиску с Алисой
Функцию strtok нельзя использовать в многопоточных приложениях без дополнительных мер предосторожности, потому что она использует статический буфер при разборе строки. manpages.debian.org
В многопоточной среде разные потоки могут вызывать strtok с разными строками, а функция запоминает только последнюю из них и возвращает неправильный результат. stackoverflow.com
Чтобы решить эту проблему, можно использовать функцию strtok_r(), которая работает похожим образом, но вместо статического буфера использует указатель на предоставленный пользователем указатель типа char|*. manpages.debian.org Этот указатель должен быть одним и тем же при обработке одной и той же строки. manpages.debian.org