嘗試列印 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);
}
得到了所有的空值。我做錯了什么?
uj5u.com熱心網友回復:
err_data是一個未初始化的指標。根據檔案,“ 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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417144.html
標籤:
