1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <stdlib.h> #include <string.h> #include <unistd.h> #include "libc.h" char *getenv(const char *name) { size_t l = __strchrnul(name, '=') - name; if (l && !name[l] && __environ) for (char **e = __environ; *e; e++) if (!strncmp(name, *e, l) && l[*e] == '=') return *e + l+1; return 0; }