为什么 libcap 对 cap_t 使用混淆指针

Why does libcap use obfuscated pointer for cap_t

为什么cap_t定义为_cap_struct *?混淆指针类型并使用 libcap 函数 take/return cap_t 的原因是什么,而正常的 libc 使用表明它们会 take/return 显式指针类型?

混淆指针(实际上是 "opaque")用于强制应用程序使用库的记录函数,而不是绕过这些函数并直接操作其数据。

这样做可以让(库的)开发人员专注于使函数正常工作,而不是因为处理数据不一致而分心。

进一步阅读: