1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <stdio.h>
extern char **environ;
static
const char * duma_getenv( const char * varname )
{
const char * ret = NULL;
int varno = 0;
if ( !varname )
return ret;
if ( varname[0] == '\0' )
return ret;
while ( environ[varno] )
{
const char * v = environ[varno++];
int idx = 0;
while ( varname[idx] != '\0' && v[idx] == varname[idx] )
++idx;
if ( idx > 0 && varname[idx] == '\0' && v[idx] == '=' )
return v + (idx +1);
}
return ret;
}
int main(int argc, const char * argv[] )
{
int i = 0;
const char * v;
const char * varname;
#if 0
printf("environment variables:\n");
while ( environ[i] )
{
const char * v = environ[i];
printf("%d: %s\n", i, v);
++i;
}
#endif
if ( argc < 2 )
{
fprintf(stderr, "Usage: testenv <varname\n");
return 5;
}
varname = argv[1];
v = duma_getenv(varname);
if ( v )
printf("%s is '%s'\n", varname, v);
else
printf("%s undefined\n", varname);
return 0;
}
|