C ++中unsafe的含义是什么?

时间:2011-12-13 17:23:20

标签: c++ strtok

  

可能重复:
  Why is strtok() Considered Unsafe?

我刚刚注意到一个警告(使用Visual Studio)strtok是不安全的,strtok_s不是。为什么它不安全?什么是不安全的?

我的问题的第一部分已回答here,但不安全的含义是什么?与此相关的问题和可能的问题是什么?

1 个答案:

答案 0 :(得分:2)

strtok不是线程安全的。如果两个或多个线程同时调用strtok,则结果将是未定义的。我在这里再现了另一个用户Jonathan Leffler的答案:

  

请注意strtok()在处理它时会破坏其输入。它是   也不是线程安全的,你必须确保没有其他功能   你从你的解析器调用使用strtok(),并没有函数   调用你的解析器使用strtok()。功能条件   被叫通常不会太繁重;但是,在库代码中,第二个   condition(没有调用函数也使用strtok())不是   强制执行。

对此问题的回答是:Dealing with input in C