`
chenqi210
  • 浏览: 76779 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

g++ strerror_r返回类型

 
阅读更多
#ifdef HAVE_DECL_STRERROR_R
#   ifdef HAVE_STRERROR_R_CHAR_P
    std::string explain_errcode(int errcode) {
        std::vector<char> buffer(0xff);
        do {
            if (strerror_r(errcode, &buffer[0], buffer.size()) != ERANGE)
                return &buffer[0];
            buffer.resize(buffer.size() * 2);
        } while (true);
    }
#   else
    std::string explain_errcode(int errcode) {
        std::vector<char> buffer(0xff);
        do {
            if (strerror_r(errcode, &buffer[0], buffer.size()) != ERANGE)
                return &buffer[0];
            buffer.resize(buffer.size() * 2);
        } while (true);
    }
#   endif
#else

 返回类型在autoconf里测试出来是int,但是g++编译时却成了char*。原因在于autoconf里AC_FUNC_STRERROR_R测试时用的gcc,默认不定义_GNU_SOURCE。而g++则默认定义了_GNU_SOURCE宏(据说libstdc++依赖这个宏)

分享到:
评论

相关推荐

    glog-0.3.4

    add StrError and replace posix_strerror_r call fix VC build by adding GOOGLE_GLOG_DLL_DECL style fix for C++11 reduce dynamic allocation from 3 to 1 per log message attempt to improve mingw-w64 ...

    fdt_strerror.rar_V2

    libfdt - Flat Device Tree manipulation for Linux v2.13.6.

    FtpLib upload class

    sprintf(errorMsg, "%s/n", curl_easy_strerror(resCode)); if (resCode == CURLE_LOGIN_DENIED){ return FTP_LOGIN_DENIED; } else if (resCode == CURLE_COULDNT_CONNECT){ return FTP_COULDNT_...

    lunix:Lua Unix模块

    适当时,会O_CLOEXEC使用诸如strerror_r和O_CLOEXEC类的接口。 该模块甚至包括针对固有的非线程安全umask系统调用的新颖解决方案,其中从一个线程调用umask可能导致另一个线程创建具有不安全或意外权限的文件。 ...

    modbus已经配置好环境的sln例程

    modbus已经配置好环境的sln例程,具体使用参考博文https://blog.csdn.net/qq_23670601/article/details/82112875

    strerror-开源

    这是一个用于将系统错误代码转换为可读文本的小实用程序。 您是否对“错误 71”之类的消息感到厌烦? 此实用程序将帮助您了解它们的含义。

    ASPZIP asp打包ZIP组件

    response.write "Error:" & zip_strError&" " end if else response.write "组件未注册 " end if set zip_xazip = nothing '---------------------------------- Set zip_fso = CreateObject...

    thl_r16_tinav2.0_hm1375验证通过_增加打印设备ID_20170824_1447.7z

    开发板:SC3817R OS:tina V2.0 1、最新的驱动程序请直接联系HiMax原厂/代理商! R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\hm1375.c 2、 R:\wyb\thl_r16_tinav...

    hm1375_tinav2.1验证通过_增加设备ID的读取显示_20170825_1333没有外层目录.7z

    R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\hm1375.c 2¡¢ R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile EXTRA...

    telnet_clinet.zip

    fprintf(stderr,"Socket error:%s\n\a",strerror(errno)); exit(1); } /* 服务器端填充 sockaddr结构 */ bzero(&server;_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET; server_addr....

    11亲测自留用最新版红包扫雷.zip

    pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_...

    r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z

    %s\n",strerror(errno)); goto quit; } cap-&gt;status = OFF; cap-&gt;cmd = COMMAND_UNUSED; capture_quit(capture); pthread_mutex_unlock(mutex); return 2; } if(cap-&gt;status == OFF) { pthread_mutex_...

    debug宏合集dbg.h

    "None" : strerror(errno)) #define log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) #define log_warn(M, ...) fprintf(stderr, "...

    GSL.jl:Julia进入GNU科学图书馆(GSL)的界面

    GSL文件 适用于(GSL)的Julia包装器,适用于Julia v1.0 +。 当前使用GSL v2.6。 结构 该库尝试为定义的所有功能,类型和符号提供Julia接口。 没有gsl_前缀的函数接口,例如sf_legendre_Pl和... strerror (gsl_errno)

    httpdownfile

    简单的网络下载文件程序。 WSADATA wdata;... sprintf(request,"GET /%s HTTP/1.1\r\nAccept: */*\r\nCache-Control: no-cache\r\nConnection: close\r\nHost: %s\r\nPragma: no-cache\r\nReferer: ...

    Posix多线程程序设计源码

    text, __FILE__, __LINE__, strerror (code)); \ abort (); \ } while (0) #define errno_abort(text) do { \ fprintf (stderr, "%s at \"%s\":%d: %s\n", \ text, __FILE__, __LINE__, strerror (errno)); \ ...

    PHP实现Socket服务器的代码

    if(($socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) == false) echo “错误(socket_create):”.socket_strerror(socket_last_error()).” ”; if(socket_bind($socket,$address,$port) == ...

    缓冲区代码

    case 'r'://开始录像 alarm_rec_enable=1; break; case 's'://停止录像 alarm_rec_enable=0; break; default:break; } } pthread_join(get_id,NULL); pthread_join(put_id,NULL); st...

    Quectel_LTE&5G_USB_Driver_V2.1.zip

    char syspath[255]; char sysport[64]; int count;... qlog_dbg("Fail to open %s, errno: %d (%s)\n", syspath, errno, strerror(errno)); return; } read(fd, idVendor, 4); close(fd);

    PHP多进程编程实例详解

    分享给大家供大家参考,具体如下: 第一步: ...pcntl_errno — 别名 pcntl_strerror pcntl_exec — 在当前进程空间执行指定程序 pcntl_fork — 创建子进程,在当前进程当前位置产生分支(子进程)。译注:

Global site tag (gtag.js) - Google Analytics