Starting from:

$25

 Lab 10. Write your own UNIX Shell, part 2 Solution

Student will work with process management and some basic system calls.
Important note: please use sp1, sp2, sp3, or atoz servers for this lab.
UNIX Shell
In Lab9 we did the 3 built-in commands: cd, pwd, exit.l
Now we need to add an exec and code to handle redirection.
FILES TO COPY:
To get the file you need, first move to your class folder by typing: cd csc60
The following command will create a directory named lab10 and put all the needed files into it below
your csc60 directory.
Type: cp -R /gaia/home/faculty/bielr/classfiles_csc60/lab10 .
Spaces needed: (1) After the cp ↑ Don’t miss the space & dot.
(2) After the -R
(3) After the directory name at the end & before the dot.
After the files are in your account and you are still in csc60, you need to type: chmod 755 lab10
This will give permissions to the directory.
Still in csc60, type: cp lab9/lab9.c lab10/lab10.c
We have copied lab9 code and renamed it to lab10.c for you to start work on it.
Next move into lab10 directory and type: chmod 644 *
This will set permissions on the files.
Your new lab10 directory should now contain: lab10.c, waitpid.c, redir.c
A lot of code to be used in Lab10 is currently commented out.
Use the file Lab9-10 GuideToRemoveComments (on SacCT) to guide you to remove a set of the extra
comments.
Pseudo Code (Yellow highlight indicates the code from Lab9.)
/*----------------------------------------------------------*/
int main (void)
{
while (TRUE)
{
int childPid;
char *cmdLine;
print the prompt(); /* i.e. csc60mshell , Use printf*/
fgets(cmdline, MAXLINE, stdin);
Call the function parseline, sending in cmdline & argv, getting back argc
/* code to print out the argc and the agrv list to make sure it all came in. */
/* This code is not required for lab10. You may leave it in or get rid of it near the end. */
Print a line. Ex: “Argc = %i”
loop starting at zero, thru less than agrc, increment by one.
print each argv[loop counter]
 more on next page

More products