Lobsters | 📄 原文链接 | 2026-10-15 收录

又一处 linux 手册页不准确:initstate

来源:sebsite.pw — 2026-10-14

📋 概述

作者此前在《你的 C 不是标准 C》里断言 glibc 的 initstate 出错时不返回 NULL、违背 POSIX,这篇是更正:一位读者来信指出该 bug 早在 2013 年就修好了,只是手册页没跟着更新。他重跑当年的代码片段,断言确实通过了。顺着这条线,他还发现 initstate(3) 缺了更关键的信息——POSIX 其实根本没有为这个函数定义任何错误,initstate(3p) 的 ERRORS 一节写的就是「未定义错误」,所以 glibc 在出错时设置 errno、以及 state 为 NULL 时报错,都是扩展行为;而 musl 严格遵循 POSIX,任何错误都不设置 errno,传入空指针则直接段错误。

🔑 核心要点

💡 金句

它说明,尽管 linux 手册页写得很详细,它们有时显然并没有讲出完整的故事。
← 返回 Lobsters 首页