Expand description
Read auxv entries one at a time via getauxval.
Because the underlying getauxval C function is weakly linked, and only available on Linux,
access to it is done via the trait Getauxval to provide some indirection. On
target_os="linux", the struct NativeGetauxval will be available, and that will call through
to getauxval if it is available and return an appropriate error if it is not. That means it
should be safe to try it if you’re not sure your glibc has the function, etc.
On all OSs, if you want a no-op sort of implementation (for use on non-Linux OSs, etc), you can
use NotAvailableGetauxval. It (surprise!) always returns the error that indicates that
getauxval function was not found. Of course, you can also use write your own stub
implementation of the trait for testing.
Structs§
- Native
Getauxval - Calls through to the underlying glibc or Bionic
getauxval(). - NotAvailable
Getauxval - A stub implementation that always returns
FunctionNotAvailable. This can be used when you want to use something reasonable (i.e. won’t crash or fail to compile) that’s notNativeGetauxvalon non-Linux systems.
Enums§
- Getauxval
Error - Errors from invoking
getauxval.
Traits§
- Getauxval
- On Linux, you will probably want
NativeGetauxval. If you’re not on Linux but want to use the samegetauxv-based logic, you could conditionally useNotAvailableGetauxvalinstead.