Projects done in teams of two people during our study at Alx software engineering programme.
For this project we had to take a close look at these concepts;
Unless specified otherwise, your program must have the exact same output as sh (/bin/sh) as well as the exact same error output.
The only difference is when you print an error, the name of the program must be equivalent to your argv[0] (See below)
Example of error with sh:
$ echo "qwerty" | /bin/sh
/bin/sh: 1: qwerty: not found
$ echo "qwerty" | /bin/../bin/sh
/bin/../bin/sh: 1: qwerty: not found
$
ALLOWED FUNCTIONS & SYSTEM CALLS | ALLOWED FUNCTIONS & SYSTEM CALLS |
---|---|
access (man 2 access) | malloc (man 3 malloc) |
chdir (man 2 chdir) | open (man 2 open) |
close (man 2 close) | opendir (man 3 opendir) |
closedir (man 3 closedir) | perror (man 3 perror) |
execve (man 2 execve) | read (man 2 read) |
exit (man 3 exit) | readdir (man 3 readdir) |
_exit (man 2 _exit) | signal (man 2 signal) |
fork (man 2 fork) | lstat (_lxstat)(man 2 lstat) |
free (man 3 free) | fstat (_fxtat)(man 2 fstat) |
getcwd (man 3 getcwd) | strtok (man 3 strtok) |
getline (man 3 getline) | wait (man 2 wait) |
getpid (man 2 getpid) | waitpid (man 2 waitpid) |
isatty (man 3 isatty) | wait3 (man 2 wait3) |
kill (man 2 kill) | wait4 (man 2 wait4) |
write (man 2 write) |
FILES CREATED | FILES CREATED |
---|---|
_atoi.c | builtin.c |
builtin.c | environ.c |
errors.c | errors1.c |
exits.c | getLine.c |
getenv.c | getinfo.c |
history.c | lists.c |
lists1.c | main.c |
memory.c | parser.c |
realloc.c | shell.h |
shell_loop.c | string.c |
string1.c | tokenizer.c |
vars.c |
- Essie Mkeu
- Joseph Simon