Adding who, chroot, env and split.
Thanks "Galos, David" <galosd83@students.rowan.edu>!
This commit is contained in:
44
env.c
Normal file
44
env.c
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include "util.h"
|
||||
|
||||
extern char **environ;
|
||||
|
||||
static void usage(void);
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
ARGBEGIN {
|
||||
case 'i':
|
||||
clearenv();
|
||||
break;
|
||||
case 'u':
|
||||
unsetenv(EARGF(usage()));
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
} ARGEND;
|
||||
|
||||
for(; *argv && strchr(*argv, '='); argv++)
|
||||
putenv(*argv);
|
||||
|
||||
if(*argv) {
|
||||
execvp(*argv, argv);
|
||||
enprintf(127-(errno!=EEXIST), "env: '%s':", *argv);
|
||||
}
|
||||
|
||||
while(environ && *environ)
|
||||
printf("%s\n", *environ++);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
eprintf("usage: env [-i] [-u name]... [name=value]... [cmd [arg...]]\n");
|
||||
}
|
Reference in New Issue
Block a user