diff --git a/Main.c b/Main.c index 68117d06dcbf2282f0fe75200a661559d3274e35..932d1a6b548de554fd1566a6c9980cb5d003dbbc 100644 --- a/Main.c +++ b/Main.c @@ -8,13 +8,40 @@ /** * Description: + * Shell program. * + * Built in Commands: + * cd: Takes exactly one additional arg. Cannot be combined with piping. + * pwd: Takes no args. Cannot be combined with piping. + * umask: Can take either 0 or one args. Cannot be combined with piping. + * + * Piping can link indefinitely, so far as I can tell. + * At the very least, up to four pipes (such as the following) + * ls -l | grep a | grep b | grep c | grep v + * appears to work with no issues or memory leaks. */ /** * Known Issues: + * Does not handle < or > symbols. + * Does not handle backgrounding (& symbol). + */ + + +/** + * Notes: + * I did not create any "toy" programs (as defined in the assignment doc) + * so I cannot include those. However, I did try to start with a simple case + * and slowly "upgrade" it to the current assignment. + * + * Initially, I just focused on getting provided makeargv file to work. + * Then, I got the assignment to execlp for a single, static argument. + * Next, I refactored to use execvp instead of execlp. + * Last, I effectively updated the program to accept (seemingly) infinite piping. * + * To view these, look at my commit history (via something like gitk) and view + * the commits between 10-20-17 and 10-26-17. */