【问题标题】:Openssl ERR_error_string error description returns nullOpenssl ERR_error_string 错误描述返回 null
【发布时间】:2022-01-20 14:15:44
【问题描述】:

尝试打印 OpenSSL 错误描述:

for (unsigned long int  er_code=0;er_code<100;er_code++)
{
char * err_data;
ERR_error_string(er_code, err_data);
printf("error code: %lu data: %s\n", er_code, err_data); 
}

得到所有空值。我做错了什么?

【问题讨论】:

    标签: c openssl


    【解决方案1】:

    err_data 是一个未初始化的指针。根据the documentation,“buf 必须至少有 256 个字节长。”

    那就试试吧:

    for (unsigned long int er_code = 0; er_code < 100; er_code++)
    {
        char err_data[256];
        ERR_error_string(er_code, err_data);
        printf("error code: %lu data: %s\n", er_code, err_data);
    }
    

    或者,“如果 buf 为 NULL,则错误字符串被放置在静态缓冲区中。”所以你也可以这样做:

    for (unsigned long int er_code = 0; er_code < 100; er_code++)
    {
        char* err_data = ERR_error_string(er_code, NULL);
        printf("error code: %lu data: %s\n", er_code, err_data);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      相关资源
      最近更新 更多