为什么 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")用于强制应用程序使用库的记录函数,而不是绕过这些函数并直接操作其数据。
这样做可以让(库的)开发人员专注于使函数正常工作,而不是因为处理数据不一致而分心。
进一步阅读:
- What is an opaque value?
- Opaque C structs: how should they be declared?
- Why use an opaque “handle” that requires casting in a public API rather than a typesafe struct pointer?
为什么cap_t
定义为_cap_struct *
?混淆指针类型并使用 libcap 函数 take/return cap_t
的原因是什么,而正常的 libc 使用表明它们会 take/return 显式指针类型?
混淆指针(实际上是 "opaque")用于强制应用程序使用库的记录函数,而不是绕过这些函数并直接操作其数据。
这样做可以让(库的)开发人员专注于使函数正常工作,而不是因为处理数据不一致而分心。
进一步阅读:
- What is an opaque value?
- Opaque C structs: how should they be declared?
- Why use an opaque “handle” that requires casting in a public API rather than a typesafe struct pointer?