strtok用来做字符串分割。
strtok(char * str,const char * delim)
该函数调用一次,返回由delim分割的一部分字符串,需要多次调用,把所有的分割结果都返回出来。
可以看出,函数内部需要维护一个静态内存区域,因此不可重入。
基于不可重入的问题,就有了对应的安全函数,如下:
windows版:strtok_s(char* s, const char* delm, char** context)
linux版:strtok_r(char* s, const char* delm, char** context)
将本要函数内部保存的静态区域,改为返回到外面的指针,解决重入问题。