[Nix-dev] Inspecting getenv(3) calls
    Ludovic Courtès 
    ludo at gnu.org
       
    Wed Aug 12 15:52:34 CEST 2009
    
    
  
/* Display looked up environment variables.
   Compile as shown at the bottom of this file.
   Run with:
     $ LD_PRELOAD=./getenv.so some-program
   Written by Ludovic Court?s <ludo at gnu.org>.  Hereby placed under the
   LGPLv3+.
 */
#include <stdio.h>
#include <gnu/lib-names.h>
#include <dlfcn.h>
static void *glibc;
static char * (*glibc_getenv) (const char *);
static void load_glibc (void) __attribute__ ((__constructor__));
static void
load_glibc (void)
{
  glibc = dlopen (LIBC_SO, RTLD_LAZY);
  glibc_getenv = dlsym (glibc, "getenv");
}
char *
getenv (const char *name)
{
  char *result;
  result = glibc_getenv (name);
  printf ("getenv (\"%s\") = %s%s%s\n", name,
	  result ? "\"" : "",
	  result ? result : "NULL",
	  result ? "\"" : "");
  return result;
}
/*
   Local Variables:
   compile-command: "gcc -Wall -shared -fPIC -o getenv.so getenv.c"
   End:
 */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://lists.science.uu.nl/pipermail/nix-dev/attachments/20090812/b8473d4a/attachment.bin 
    
    
More information about the nix-dev
mailing list