【问题标题】:Is there an equivalent of the C function mbsinvalid on Linux?Linux 上是否有与 C 函数 mbsinvalid 等效的功能?
【发布时间】:2014-01-20 01:16:46
【问题描述】:

将 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

谢谢!

【问题讨论】:

    标签: c linux aix


    【解决方案1】:

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

    如果 dest 为 NULL,则忽略 n,并按上述方式进行转换,只是转换后的宽字符不会写入内存,并且不存在长度限制。

    ....

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

    (来自mbstowcs man page)。

    (size_t)-1的结果表示存在无效的多字节序列。

    【讨论】:

    • 太棒了!看起来就可以了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2012-02-11
    • 2011-06-13
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多