这个 OpenSSL 函数是否会失败?
Does this OpenSSL function ever fail?
我想在我的代码中使用 OpenSSL 函数 EVP_MD_CTX_new
。此函数的 documentation 仅声明它“分配并 returns 一个摘要上下文”。由于此函数分配内存,我假设它 可以 失败,但文档没有说明这是否属实,以及失败时 return 的值是多少.
我对 C 编程有些陌生,对我来说,这个函数的接口似乎没有完全指定。在这种情况下,程序员该怎么办?我应该如何测试失败?我应该测试 NULL
吗?如果是,他们到底为什么不明确说明?
感谢您的想法。
额外的(更一般的)问题:不用说,这个特定的函数(和库)只是我遇到的许多类似示例之一。到目前为止,我的经验是许多 C 函数的接口在某些方面没有完全指定。更多资深C程序员如何处理这些情况?我们应该依赖惯例吗?或者可能深入研究我们使用的库的代码以查看行为是什么?
我想在我的代码中使用 OpenSSL 函数 EVP_MD_CTX_new
。此函数的 documentation 仅声明它“分配并 returns 一个摘要上下文”。由于此函数分配内存,我假设它 可以 失败,但文档没有说明这是否属实,以及失败时 return 的值是多少.
我对 C 编程有些陌生,对我来说,这个函数的接口似乎没有完全指定。在这种情况下,程序员该怎么办?我应该如何测试失败?我应该测试 NULL
吗?如果是,他们到底为什么不明确说明?
感谢您的想法。
额外的(更一般的)问题:不用说,这个特定的函数(和库)只是我遇到的许多类似示例之一。到目前为止,我的经验是许多 C 函数的接口在某些方面没有完全指定。更多资深C程序员如何处理这些情况?我们应该依赖惯例吗?或者可能深入研究我们使用的库的代码以查看行为是什么?