在Linux上是否有等效的C函数mbsinvalid?

时间:2014-01-02 14:52:32

标签: c linux aix

将C应用程序从AIX移植到Linux - 是否有人知道Linux上是否有相当于mbsinvalid()的函数?

从AIX页面:

“mbsinvalid子例程检查S参数指向的字符串以确定字符的有效性.LC_CTYPE类别影响mbsinvalid子例程的行为。”

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf1/mbsinvalid.htm

谢谢!

1 个答案:

答案 0 :(得分:4)

mbstowcs与NULL目标指针一起使用:

  

如果dest为NULL,则忽略n,转换如上所述,但转换后的宽字符不会写入内存,并且不存在长度限制。

     

...

     
      
  1. 遇到无效的多字节序列。在这种情况下(size_t)返回-1。
  2.   

(来自mbstowcs man page)。

也就是说,(size_t)-1的结果意味着存在无效的多字节序列。