home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / DJGPP2 / V2 / DJTST200.ZIP / tests / libc / ansi / stdlib / env.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-20  |  1.0 KB  |  48 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5. #include <unistd.h>
  6.  
  7. extern char **environ;
  8.  
  9. int
  10. main(void)
  11. {
  12.   char line[1000];
  13.   char cmd[80], val[1000];
  14.   while (1)
  15.   {
  16.     int count = 1, i;
  17.     fprintf(stderr, "> ");
  18.     strcpy(line, "?");
  19.     if (gets(line) == 0)
  20.       break;
  21.     strcpy(cmd, "");
  22.     strcpy(val, "");
  23.     sscanf(line, "%s %[^\n]", cmd, val);
  24.  
  25.     if (isdigit(cmd[0]))
  26.     {
  27.       count = atoi(cmd);
  28.       sscanf(val, "%s %[^\n]", cmd, val);
  29.     }
  30.  
  31.     if (strcmp(cmd, "e") == 0)
  32.       for (i=0; environ[i]; i++)
  33.     puts(environ[i]);
  34.     else if (strcmp(cmd, "g") == 0)
  35.       printf("%s = `%s'\n", val, getenv(val));
  36.     else if (strcmp(cmd, "p") == 0)
  37.       for (i=0; i<count; i++)
  38.     putenv(val);
  39.     else if (strcmp(cmd, "q") == 0)
  40.       break;
  41.     else if (strcmp(cmd, "m") == 0)
  42.       printf("memory break = 0x%p\n", sbrk(0));
  43.     else
  44.       fprintf(stderr, "Valid commands: g e p q m, not `%s' `%s'\n", cmd, val);
  45.   }
  46.   return 0;
  47. }
  48.