【发布时间】:2015-11-24 18:05:18
【问题描述】:
我正在开发一个多线程项目,该项目由于使用了非线程安全的库函数“strtok()”而遭受了许多错误。
我很想通过在项目文件(Qt Creator / qmake)中定义一些东西(例如重新定义符号)找到一种方法来禁止使用此功能(可能还有其他功能),以防止新开发人员或经验丰富的错误制造者再介绍一遍。
有什么想法吗?
【问题讨论】:
-
嗯,有gcc poison
-
既然要替换它,何不搜索所有文件以了解它的使用情况?
-
@Olaf 搜索和修复当前使用在后来有人添加调用 strtok 的代码时无济于事。 OP 可以创建自己的 strtok,如果调用它会导致中止 - 然后在单元测试期间会发现新添加的 strtok 调用。
-
@FredK:同意。 uint-test应该自动给违反编码标准的人发fire-mail....但是谁敢开除boss呢?
-
您可以在构建可执行文件后扫描
strtok符号,使用nm等目标文件分析工具。