• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdlib.h>
2 #include <string.h>
3 #include <unistd.h>
4 
getenv(const char * name)5 char *getenv(const char *name)
6 {
7 	if (name == NULL || __environ == NULL)
8 		return 0;
9 	size_t i, l = 0;
10 	const char *np;
11 	char **p, *ep;
12 	for (; *(name + l) && *(name + l) != '='; ++l);
13 	for (p = __environ; (ep = *p) != NULL; ++p) {
14 		for (np = name, i = l; i && *ep; i--) {
15 			if (*ep++ != *np++) {
16 				break;
17 			}
18 		}
19 		if (i == 0 && *ep++ == '=') {
20 			return (ep);
21 		}
22 	}
23 	return 0;
24 }
25