将C应用程序从AIX移植到Linux - 是否有人知道Linux上是否有相当于mbsinvalid()的函数?
从AIX页面:
“mbsinvalid子例程检查S参数指向的字符串以确定字符的有效性.LC_CTYPE类别影响mbsinvalid子例程的行为。”
谢谢!
答案 0 :(得分:4)
将mbstowcs
与NULL目标指针一起使用:
如果dest为NULL,则忽略n,转换如上所述,但转换后的宽字符不会写入内存,并且不存在长度限制。
...
- 遇到无效的多字节序列。在这种情况下(size_t)返回-1。
醇>
(来自mbstowcs man page)。
也就是说,(size_t)-1
的结果意味着存在无效的多字节序列。