Api 在内存分配失败时,g_strdup是否返回NULL?

Api 在内存分配失败时,g_strdup是否返回NULL?,api,memory-management,glib,Api,Memory Management,Glib,glib文档缺少许多我认为API文档绝对应该包含的重要内容。例如,nothing的条目表示它将在内存分配失败时崩溃(与标准malloc的行为形成直接对比,其名称暗示它模仿了标准malloc)。只有当您碰巧注意到还有一个名为的变体并阅读其描述时,您才会被告知g\u try\u malloc 尝试分配n_字节,失败时返回NULL。明显的差异 使用g_malloc(),失败时中止程序 现在,对于这个问题,glib有一个函数g\u strdup,它也没有提到任何可能返回NULL的内容。我认为不会,因为这

glib文档缺少许多我认为API文档绝对应该包含的重要内容。例如,nothing的条目表示它将在内存分配失败时崩溃(与标准
malloc
的行为形成直接对比,其名称暗示它模仿了标准
malloc
)。只有当您碰巧注意到还有一个名为的变体并阅读其描述时,您才会被告知
g\u try\u malloc

尝试分配n_字节,失败时返回NULL。明显的差异 使用g_malloc(),失败时中止程序


现在,对于这个问题,glib有一个函数
g\u strdup
,它也没有提到任何可能返回NULL的内容。我认为不会,因为这意味着它将在内部使用g_malloc。会吗?

不过,文档中确实提到了这一点。查看GLib手册页面的介绍部分:

如果任何分配内存的调用失败,应用程序将终止。这也意味着不需要检查调用是否成功


这适用于任何分配内存的库调用,因此也适用于
g_strdup()

这篇文章的基调是这样的,我考虑投票结束,因为它具有争议性和非建设性;也许你可以让它少一点咆哮,更多地坚持你的问题?API设计是困难的(),但如果某个东西走路像鸭子,说话像鸭子,但实际上是鸽子,如果不在一个容易访问的地方记录这一事实,那就是严重的失败(即,与功能说明一起显示,不显示在tiger警告记忆处理页面后面的其他地方)。我不想就API设计或警告的位置进行辩论。我同意这可能会更好,我理解你的沮丧。我反对你的敌对语气,以及在你问你实际问题之前的漫无边际的长篇大论。Stack Overflow对这些事情表示不满。但是,我没有投票关闭你的帖子。我甚至没有对你的帖子表示失望我以为你在发泄一些挫折,我们都需要不时地这样做,并要求你编辑它。这个请求仍然有效。