【发布时间】:2014-01-20 01:16:46
【问题描述】:
将 C 应用程序从 AIX 移植到 Linux - 有谁知道 Linux 上是否有等效的 mbsinvalid() 函数?
来自 AIX 页面:
“mbsinvalid 子例程检查 S 参数指向的字符串以确定字符的有效性。LC_CTYPE 类别影响 mbsinvalid 子例程的行为。”
谢谢!
【问题讨论】:
将 C 应用程序从 AIX 移植到 Linux - 有谁知道 Linux 上是否有等效的 mbsinvalid() 函数?
来自 AIX 页面:
“mbsinvalid 子例程检查 S 参数指向的字符串以确定字符的有效性。LC_CTYPE 类别影响 mbsinvalid 子例程的行为。”
谢谢!
【问题讨论】:
将mbstowcs 与NULL 目标指针一起使用:
如果 dest 为 NULL,则忽略 n,并按上述方式进行转换,只是转换后的宽字符不会写入内存,并且不存在长度限制。
....
- 遇到无效的多字节序列。在这种情况下,返回 (size_t) -1。
(来自mbstowcs man page)。
即(size_t)-1的结果表示存在无效的多字节序列。
【讨论】: