micro-utils/src/coreutils/env/env.c

34 lines
569 B
C

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(const int argc, char **argv, const char **envp) {
int i;
for (i = 1; i < argc; i++) {
char *val = strchr(argv[i], '=');
if (!val)
break;
val[0] = '\0';
if (setenv(argv[i], val + 1, 1)) {
fprintf(stderr, "env: %s\n", strerror(errno));
return 1;
}
}
/* Print env */
if (i == argc) {
while (*envp)
puts(*envp++);
return 0;
}
execvp(argv[i], argv + i);
fprintf(stderr, "env: %s: %s\n", argv[i], strerror(errno));
return 1;
}