This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TM4C129CNCZAD:Strtok和Thread Local Storage

Guru**** 2049390 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/581253/compiler-tm4c129cnczad-strtok-and-thread-local-storage

部件号:TM4C129CNCZAD

工具/软件:TI C/C++编译器

查看TI编译器对strtok (v 15.12 .3)的定义,其中有一条注释:

/*------------------ */*
我们为每个线程提供其自身的'Last_end'副本,以在
来自不同线程的strtok()调用重叠时保护线程不被*/*互相攻击。 *//*
然而,strtok()仍然不能重新进入。 在单个线程中,*/*
'last_end'指针保持一种状态,该状态传递
来自同一线程的连续*/*调用到strtok()。 */*------------------
*/ 

在ARM处理器的情况下,TI编译器是否为每个任务/线程创建了'last_end'?  当我尝试在主程序中使用'__thread'创建线程局部变量时,编译器通常无法识别该关键字。  TI也不包括像'trtok_r'这样的线程安全实施。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉,虽然RTS源代码已准备好支持某些对象的线程本地存储,但目前唯一支持线程本地存储的TI编译器是EABI模式下的C6x。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这只是一个建议,但也许TI应该在其编译器文档或评论中更明确地说明这一点。  我从中获取的这个源文件来自ARM编译器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 SDOWP系统中提交了CodeGen-2215,以请求更新编译器文档。  欢迎您使用我签名中下面的SDOWP链接进行关注。

    谢谢,此致,

    -George