【发布时间】:2021-07-07 09:55:36
【问题描述】:
我想在我的代码中使用 OpenSSL 函数 EVP_MD_CTX_new。此函数的documentation 仅声明它“分配并返回摘要上下文”。由于此函数分配内存,我假设它可能失败,但文档没有说明这是否正确,以及在失败的情况下返回值是什么。
我对 C 编程有点陌生,对我来说,这个函数的接口似乎没有完全指定。在这种情况下,程序员应该做什么?我应该如何测试失败?我应该测试NULL 吗?如果是的话,他们到底为什么不明确说明这一点?
感谢您的意见。
奖励(更一般的)问题:不用说,这个特定的函数(和库)只是我遇到的许多类似示例之一。到目前为止,我的经验是,许多 C 函数的接口在某些方面没有完全指定。更多资深 C 程序员如何处理这些情况?我们是否应该依赖约定?或者也许深入研究我们使用的库的代码以查看行为是什么?
【问题讨论】: