这几天调bug,该bug的特点是随机出现,而且不可重现!找了一天之后,终于发现,是因为在多线程函数中用了线程不安全的strtok函数导致的。
从网上搜了些资料,
多线程环境小心多线程不安全函数:strtok、asctime、ctime、gmtime and soo
改成线程安全的函数strtok_r即可。
strtok不是一个线程安全的函数,多线程下应该用strtrok_r
这个函数的定义:char*strtok_r(char *s, const char *delim, char**ptrptr);
最后一个参数是和strtok不同的,使用方法如下: