场景说明:
       Android平台NDK调用iconv_open函数,实现UTF-8转GBK编码,没有达到预期的效果。尝试获取iconv_open函数失败的错误码。因为NDK的运行环境是Linux系统,所以尝试使用Linux获取错误码的机制,查看错误信息。

解决方案:
1)包含的头文件:
#include
#include
#include
#include
2)调用的情况:
    errno = 0;//避免其他的错误影响到本次函数执行结果的判断
    iconv_t cd = iconv_open("GBK", "UTF-8");
    char* message = NULL;
    if (errno != 0)
    {
        message = strerror(errno);
    }
基本原理:errno作为一个系统全局的变量,定义在errno.h文件中,会在函数调用出错的情况下设置,通过strerror函数返回错误的具体信息,当前测试的结果,错误码是22,错误信息:Invalid argument,如果errno等于0,消息是:success

参考网址:http://www.2cto.com/kf/201504/393638.html