strtok_r()是否是string.h的一部分

时间:2014-07-31 09:55:51

标签: c strtok

伙计们,我已经在项目中使用了我自己的strtok_r()实现一段时间,并且认为我将声明与标准实现保持一致,纯粹是为了整洁。

然而,我通常会快速查看这些内容的少数网站没有将其列为string.h的一部分,所以看起来更远。其他网站将其列为标准string.h的一部分,但具有不同的声明

它还是不是吗?是否有权威参考?感谢。

编辑:也许是POSIX?

1 个答案:

答案 0 :(得分:4)

它是POSIX,而不是标准C.如果您检查POSIX spec,您会看到它标有[CX],表示它已经标记为{{3}}。\ n'是C标准的扩展。你也可以在那里找到官方原型:

char *strtok_r(char *restrict s, const char *restrict sep,
   char **restrict lasts);

如果您发现不同的声明,可能是其中一些声明并未包含问题6中添加的restrict个关键字。