--- /dev/null
+#include <sys/types.h>
+#include <elf.h>
+#include <pwd.h>
+#include <stdio.h>
+
+#if ( __WORD_BITS__ == 32 )
+typedef Elf32_auxv_t auxv_t;
+#else
+typedef Elf64_auxv_t auxv_t;
+#endif
+
+int main( int argc, char const* argv[] )
+{
+ auxv_t *auxv;
+ for( ; *argv; argv++ ) ; /* skip argv... */
+ argv++; /* skip null */
+ for( ; *argv; argv++ ) ; /* skip envp... */
+ argv++; /* skip null */
+ for ( auxv = (auxv_t *)argv; auxv->a_type != AT_NULL; auxv++ )
+ printf( "auxv: type %zu, value 0x%zx\n", auxv->a_type, auxv->a_un.a_val );
+ getpwnam( "root" );
+ return 0;
+}