现在当我想返回str中的所有匹配位置时,例如:abcd123abcd123abcd假设我想得到所有的“abcd”,我必须使用regexec(),得到第一个位置:0、3,然后我将使用:123abcd123abcd作为再次使用regexec()的新字符串,依此类推。我阅读了有关regexec()的手册,它说:intregexec(constregex_t*preg,constchar*string,size_tnmatch,regmatch_tpmatch[],inteflags);nmatchandpmatchareusedtoprovideinformationregardingthe
现在当我想返回str中的所有匹配位置时,例如:abcd123abcd123abcd假设我想得到所有的“abcd”,我必须使用regexec(),得到第一个位置:0、3,然后我将使用:123abcd123abcd作为再次使用regexec()的新字符串,依此类推。我阅读了有关regexec()的手册,它说:intregexec(constregex_t*preg,constchar*string,size_tnmatch,regmatch_tpmatch[],inteflags);nmatchandpmatchareusedtoprovideinformationregardingthe
我读过libc中的正则表达式函数应该是线程安全的,但我也读过在早期版本中情况并非如此。我现在必须在具有旧libc版本2.2.5的嵌入式系统上工作。所以我不太确定像“regexec”这样的函数是线程安全的还是应该由互斥体保护?如果有人对此有任何线索,我将不胜感激。我也不太确定应该针对什么进行测试以验证这些函数的线程安全性。 最佳答案 我在最近的libc版本(2.13)的NEWS文件中搜索了regex关键字。没有关于线程安全的内容,但有以下注意事项:Version2.3...IsamuHasegawacontributedacomple