This is a simple shell project

c programming project and need the explanation and answer to help me learn.

You are tasked to come up with solutions for the tasks below yourself to meet with the above learning objectives.
You will not be able to meet the objectives of this or any following project by copying and pasting someone else’s work.
You are not allowed to publish any content of this project.
Any form of plagiarism is strictly forbidden and will result in removal from the program.
Requirements: | .doc file
0x16. C – Simple ShellCGroup projectSyscallIn a nutshell…• Contribution: 100.0%• Auto QA review: 26.75/55 mandatory & 8.55/76 optional• Altogether:54.11%◦ Mandatory: 48.64%◦ Optional: 11.25%◦ Contribution: 100.0%◦ Calculation: 100.0% * (48.64% + (48.64% * 11.25%) ) == 54.11%ConceptsFor this project, we expect you to look at these concepts:• Everything you need to know to start coding your own shell (/concepts/64)• Approaching a Project (/concepts/350)• All about Team Projects + Pairings + FAQ (A must read) (/concepts/100037)• Struggling with the sandbox? Try this: Using Docker & WSL on your local host (/concepts/100039)Background ContextWrite a simple UNIX command interpreter. By: Julien Barbier⚙ Weight: 10 Project to be done in teams of 2 people (your team: Victor Preston)Project over – took place fromAug 9, 2023 6:00 AMto Aug 24, 2023 6:00 AM☑ An auto review will be launched at the deadline(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2351 of 1911/3/23, 15:19
^ “The Gates of Shell”, by Spencer Cheng (/rltoken/AtYRSM03vJDrko9xHodxFQ), featuring JulienBarbier (/rltoken/-ezXgcyfhc8qU1DeUInLUA)Important message from JulienIt’s time for the famous Simple Shell project. This is one of the most anticipated project and also onethat will challenge you a lot about everything you have learn so far:• Basics of programming• Basics of C• Basics of thinking like an engineer• Group work• and Learning how to learnI would like to take this moment to remind you about a few important things.First, remember the framework. If you do not know it by heart already, it is probably a good idea toread it again: https://intranet.alxswe.com/concepts/559 (/rltoken/a08_c01OP1XHY3awtkdFRA)Note that there is no point in this framework that says it is ok to look at code from other people. It is(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2352 of 1911/3/23, 15:19
not allowed to look at other people’s code, either other students or online articles or videos. At ALXSE we do not copy solutions and we do not look at it when we start a project.In the context of learning (some of these will no longer be true when you work):• NEVER copy any code, never look at solution (and never give any solution to your friends, youare not helping them by doing so)• ALWAYS write code alone from scratch after you get help to check that you have actuallyunderstood. If you can not do it, you have not understood enough, and need to study more. Donot rewrite code from memory, but from understanding.I saw some of you sharing resources with each other already. Tutorials on how to do the shell step bystep with all the code associated with these, or even video and documents with the solution withouteven any explanation. This is not the right way to learn. Please do not be tempted by these links. Theywill only push you to take shortcuts and / or cheat. And trust me, you will be caught. Kimba (/rltoken/3nocfYiMMxjbhlMllUqLxg) is not a joke and he is here to remind you why you are here.While we encourage the use of ChatGPT and co in the framework (also, not right away, but at the rightstep, see framework), it is important to understand that the same rules apply to these AI tools (again,in the context of learning. When you will work it will be completely different, but context matters). Atno point does it say that you are allowed to use copilot or ChatGPT to code the solution. If you do,you will get 200% (for a few hours), understand 0, learn 0, and you will be caught for cheating 100%,and then your score for both you and your partner will be 0%. If you don’t get how to use ChatGPTand other AI tools in the context of learning, simply do not use them.The reality is that at this point of the program, if you have not cheated before, you have everythingyou need to complete the project with what you have learned + the page “Everything you need toknow to start coding your own shell” https://intranet.alxswe.com/concepts/64 (/rltoken/e6Nw3W01-33JDxlCyKX-Kw)Actually, you do not even need to open Google once. Focus on your whiteboarding, and everythingwill fall in place. Remember, at ALX SE you never learn the solution, you learn how to walk toward thesolution. You learn to create the tutorial, so if you follow one, you are looking at the solution, you aretaking a very serious shortcut that will undermine your learning.Last thing about the framework. Note that the first thing to do is “0. Read”. Every detail counts. Makesure you read and test everything.The shell project is a group project. That means you will be paired with someone. You already did thiswith printf, so please apply everything you have learned from the printf experience here. A quickreminder, that a group project is NOT:• I do nothing and cross fingers for my partner to do everything so I can have a good score• I do everything because I am so much better than my partner and I don’t care about themA group project at ALX SE is a project that both of you are responsible for. Everything anyone pushesto Github is the responsibility of both partners. It is not ok to say later “I didn’t cheat it’s my partner Ididn’t know they didn’t tell me”.So you are supposed to work TOGETHER. And you should both understand every single line of codethat any of you pushes. Here is a link for you to read about pair programming:https://intranet.alxswe.com/concepts/121 (/rltoken/G52zDoV1f2dmmMl3ngchyw)If you plan on not working on the shell project (or if at any point in time you can’t), it is yourresponsibility to tell both the staff and your partner so that they can find another partner who willwork with them asap.(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2353 of 1911/3/23, 15:19
If your group gets caught for plagiarism we will not tolerate “I didn’t do anything, so I should not beflagged”. Yes you should be flagged, because you are someone who doesn’t care about others andthought it was ok to let your partner down and to maybe get the score without doing anything.The shell is an incredibly cool project. GL HF!JulienResourcesRead or watch:• Unix shell (/rltoken/f0YU9TAhniMXWlSXtb64Yw)• Thompson shell (/rltoken/7LJOp2qP7qHUcsOK2-F3qA)• Ken Thompson (/rltoken/wTSu31ZP1f7fFTJFgRQC7w)• Everything you need to know to start coding your own shell concept pageman or help:• sh (Run sh as well)Learning ObjectivesAt the end of this project, you are expected to be able to explain to anyone (/rltoken/9LNz86CtOTos9oL3zxIO3A), without the help of Google:General• Who designed and implemented the original Unix operating system• Who wrote the first version of the UNIX shell• Who invented the B programming language (the direct predecessor to the C programminglanguage)• Who is Ken Thompson• How does a shell work• What is a pid and a ppid• How to manipulate the environment of the current process• What is the difference between a function and a system call• How to create processes• What are the three prototypes of main• How does the shell use the PATH to find the programs• How to execute another program with the execve system call• How to suspend the execution of a process until one of its children terminates• What is EOF / “end-of-file”?Copyright – Plagiarism• You are tasked to come up with solutions for the tasks below yourself to meet with the abovelearning objectives.• You will not be able to meet the objectives of this or any following project by copying andpasting someone else’s work.• You are not allowed to publish any content of this project.• Any form of plagiarism is strictly forbidden and will result in removal from the program.(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2354 of 1911/3/23, 15:19
RequirementsGeneral• Allowed editors: vi, vim, emacs• All your files will be compiled on Ubuntu 20.04 LTS using gcc, using the options -Wall-Werror -Wextra -pedantic -std=gnu89• All your files should end with a new line• A README.md file, at the root of the folder of the project is mandatory• Your code should use the Betty style. It will be checked using betty-style.pl(https://github.com/alx-tools/Betty/blob/master/betty-style.pl) and betty-doc.pl(https://github.com/alx-tools/Betty/blob/master/betty-doc.pl)• Your shell should not have any memory leaks• No more than 5 functions per file• All your header files should be include guarded• Use system calls only when you need to (why? (/rltoken/EU7B1PTSy14INnZEShpobQ))• Write a README with the description of your project• You should have an AUTHORS file at the root of your repository, listing all individuals havingcontributed content to the repository. Format, see Docker (/rltoken/UL8J3kgl7HBK_Z9iBL3JFg)GitHub*There should be one project repository per group. If you and your partner have a repository with thesame name in both your accounts, you risk a 0% score. Add your partner as a collaborator. *More InfoOutput• 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 toyour 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$Same error with your program hsh:(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2355 of 1911/3/23, 15:19
$ echo “qwerty” | ./hsh./hsh: 1: qwerty: not found$ echo “qwerty” | ./././hsh./././hsh: 1: qwerty: not found$List of allowed functions and system calls• access (man 2 access)• chdir (man 2 chdir)• close (man 2 close)• closedir (man 3 closedir)• execve (man 2 execve)• exit (man 3 exit)• _exit (man 2 _exit)• fflush (man 3 fflush)• fork (man 2 fork)• free (man 3 free)• getcwd (man 3 getcwd)• getline (man 3 getline)• getpid (man 2 getpid)• isatty (man 3 isatty)• kill (man 2 kill)• malloc (man 3 malloc)• open (man 2 open)• opendir (man 3 opendir)• perror (man 3 perror)• read (man 2 read)• readdir (man 3 readdir)• signal (man 2 signal)• stat (__xstat) (man 2 stat)• lstat (__lxstat) (man 2 lstat)• fstat (__fxstat) (man 2 fstat)• strtok (man 3 strtok)• wait (man 2 wait)• waitpid (man 2 waitpid)• wait3 (man 2 wait3)• wait4 (man 2 wait4)• write (man 2 write)CompilationYour shell will be compiled this way:gcc -Wall -Werror -Wextra -pedantic -std=gnu89 *.c -o hshTesting(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2356 of 1911/3/23, 15:19
Your shell should work like this in interactive mode:$ ./hsh($) /bin/lshsh main.c shell.c($)($) exit$But also in non-interactive mode:$ echo “/bin/ls” | ./hshhsh main.c shell.c test_ls_2$$ cat test_ls_2/bin/ls/bin/ls$$ cat test_ls_2 | ./hshhsh main.c shell.c test_ls_2hsh main.c shell.c test_ls_2$ChecksThe Checker will be released at the end of the project (1-2 days before the deadline). We stronglyencourage the entire class to work together to create a suite of checks covering both regular testsand edge cases for each task. See task 8. Test suite.Tasks0. Betty would be proudmandatoryWrite a beautiful code that passes the Betty checks■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA ReviewScore: 0.0% (Checks completed: 0.0%)Repo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2357 of 1911/3/23, 15:19
1. Simple shell 0.1mandatory(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2358 of 1911/3/23, 15:19
Write a UNIX command line interpreter.• Usage: simple_shellYour Shell should:• Display a prompt and wait for the user to type a command. A command line always ends with anew line.• The prompt is displayed again each time a command has been executed.• The command lines are simple, no semicolons, no pipes, no redirections or any otheradvanced features.• The command lines are made only of one word. No arguments will be passed to programs.• If an executable cannot be found, print an error message and display the prompt again.• Handle errors.• You have to handle the “end of file” condition (Ctrl+D)You don’t have to:• use the PATH• implement built-ins• handle special characters : “, ‘, `, \, *, &, #• be able to move the cursor• handle commands with argumentsexecve will be the core part of your Shell, don’t forget to pass the environ to it…julien@ubuntu:~/shell$ ./shell #cisfun$ ls./shell: No such file or directory#cisfun$ /bin/lsbarbie_j env-main.c exec.c fork.c pid.c ppid.c prompt prompt.c shell.c stat.c waitenv-environ.c exec fork mypid ppid printenv promptc shell stat test_scripting.sh wait.c#cisfun$ /bin/ls -l./shell: No such file or directory#cisfun$ ^[[D^[[D^[[D./shell: No such file or directory#cisfun$ ^[[C^[[C^[[C^[[C./shell: No such file or directory#cisfun$ exit./shell: No such file or directory#cisfun$ ^Cjulien@ubuntu:~/shell$ echo “/bin/ls” | ./shellbarbie_j env-main.c exec.c fork.c pid.c ppid.c prompt prompt.c shell.c stat.c waitenv-environ.c exec fork mypid ppid printenv promptc shell stat test_scripting.sh wait.c#cisfun$ julien@ubuntu:~/shell$Score: 65.0% (Checks completed: 100.0%)Repo:(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/2359 of 1911/3/23, 15:19
☑Done!HelpCheck your codeGet a sandboxQA Review2. Simple shell 0.2mandatorySimple shell 0.1 +• Handle command lines with arguments☑Done!HelpCheck your codeGet a sandboxQA Review3. Simple shell 0.3mandatorySimple shell 0.2 +• Handle the PATH• fork must not be called if the command doesn’t exist• GitHub repository: simple_shellScore: 50.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shellScore: 60.67% (Checks completed: 93.33%)(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23510 of 1911/3/23, 15:19
julien@ubuntu:~/shell$ ./shell_0.3:) /bin/lsbarbie_j env-main.c exec.c fork.c pid.c ppid.c prompt prompt.c shell_0.3 stat test_scripting.sh wait.cenv-environ.c exec fork mypid ppid printenv promptc shell shell.c stat.c wait:) lsbarbie_j env-main.c exec.c fork.c pid.c ppid.c prompt prompt.c shell_0.3 stat test_scripting.sh wait.cenv-environ.c exec fork mypid ppid printenv promptc shell shell.c stat.c wait:) ls -l /tmp total 20-rw——- 1 julien julien 0 Dec 5 12:09 config-err-aAMZrRdrwx—— 3 root root 4096 Dec 5 12:09 systemd-private-062a0eca7f2a44349733e78cb4abdff4-colord.service-V7DUzrdrwx—— 3 root root 4096 Dec 5 12:09 systemd-private-062a0eca7f2a44349733e78cb4abdff4-rtkit-daemon.service-ANGvoVdrwx—— 3 root root 4096 Dec 5 12:07 systemd-private-062a0eca7f2a44349733e78cb4abdff4-systemd-timesyncd.service-CdXUtH-rw-rw-r– 1 julien julien 0 Dec 5 12:09 unity_support_test.0:) ^Cjulien@ubuntu:~/shell$ ■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review4. Simple shell 0.4mandatorySimple shell 0.3 +• Implement the exit built-in, that exits the shell• Usage: exit• You don’t have to handle any argument to the built-in exit☑Done!HelpCheck your codeGet a sandboxQA ReviewRepo:• GitHub repository: simple_shellScore: 50.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23511 of 1911/3/23, 15:19
5. Simple shell 1.0mandatorySimple shell 0.4 +• Implement the envbuilt-in, that prints the current environmentjulien@ubuntu:~/shell$ ./simple_shell$ envUSER=julienLANGUAGE=en_USSESSION=ubuntuCOMPIZ_CONFIG_PROFILE=ubuntuSHLVL=1HOME=/home/julienC_IS=Fun_:)DESKTOP_SESSION=ubuntuLOGNAME=julienTERM=xterm-256colorPATH=/home/julien/bin:/home/julien/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binDISPLAY=:0$ exitjulien@ubuntu:~/shell$ ☑Done!HelpCheck your codeGet a sandboxQA Review6. Simple shell 0.1.1#advancedSimple shell 0.1 +• Write your own getline function• Use a buffer to read many chars at once and call the least possible the read system call• You will need to use static variables• You are not allowed to use getlineYou don’t have to:• be able to move the cursorScore: 50.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shellScore: 0.0% (Checks completed: 0.0%)(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23512 of 1911/3/23, 15:19
■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review7. Simple shell 0.2.1#advancedSimple shell 0.2 +• You are not allowed to use strtok■Done?HelpCheck your codeGet a sandboxQA Review8. Simple shell 0.4.1#advancedSimple shell 0.4 +• handle arguments for the built-in exit• Usage: exit status, where status is an integer used to exit the shelljulien@ubuntu:~/shell$ ./shell_0.4.1$ exit 98julien@ubuntu:~/shell$ echo $?98julien@ubuntu:~/shell$ ■Done?HelpCheck your codeGet a sandboxQA ReviewRepo:• GitHub repository: simple_shellScore: 50.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shellScore: 65.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23513 of 1911/3/23, 15:19
9. setenv, unsetenv#advancedSimple shell 1.0 +Implement the setenv and unsetenv builtin commands• setenv◦ Initialize a new environment variable, or modify an existing one◦ Command syntax: setenv VARIABLE VALUE◦ Should print something on stderr on failure• unsetenv◦ Remove an environment variable◦ Command syntax: unsetenv VARIABLE◦ Should print something on stderr on failure■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review10. cd#advancedSimple shell 1.0 +Implement the builtin command cd:• Changes the current directory of the process.• Command syntax: cd [DIRECTORY]• If no argument is given to cd the command must be interpreted like cd $HOME• You have to handle the command cd -• You have to update the environment variable PWD when you change directoryman chdir, man getcwd■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA ReviewScore: 0.0% (Checks completed: 0.0%)Repo:• GitHub repository: simple_shellScore: 0.0% (Checks completed: 0.0%)Repo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23514 of 1911/3/23, 15:19
11. ;#advancedSimple shell 1.0 +• Handle the commands separator ;alex@~$ ls /var ; ls /varbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /hbtn ; ls /varls: cannot access /hbtn: No such file or directorybackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /var ; ls /hbtnbackups cache crash lib local lock log mail metrics opt run spool tmpls: cannot access /hbtn: No such file or directoryalex@~$ ls /var ; ls /hbtn ; ls /var ; ls /varbackups cache crash lib local lock log mail metrics opt run spool tmpls: cannot access /hbtn: No such file or directorybackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review12. && and ||#advancedSimple shell 1.0 +• Handle the && and || shell logical operatorsScore: 10.83% (Checks completed: 16.67%)Repo:• GitHub repository: simple_shellScore: 0.0% (Checks completed: 0.0%)(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23515 of 1911/3/23, 15:19
alex@~$ ls /var && ls /varbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /hbtn && ls /varls: cannot access /hbtn: No such file or directoryalex@~$ ls /var && ls /var && ls /var && ls /hbtnbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpls: cannot access /hbtn: No such file or directoryalex@~$ ls /var && ls /var && ls /var && ls /hbtn && ls /hbtnbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpbackups cache crash lib local lock log mail metrics opt run spool tmpls: cannot access /hbtn: No such file or directoryalex@~$alex@~$ ls /var || ls /varbackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /hbtn || ls /varls: cannot access /hbtn: No such file or directorybackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /hbtn || ls /hbtn || ls /hbtn || ls /varls: cannot access /hbtn: No such file or directoryls: cannot access /hbtn: No such file or directoryls: cannot access /hbtn: No such file or directorybackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$ ls /hbtn || ls /hbtn || ls /hbtn || ls /var || ls /varls: cannot access /hbtn: No such file or directoryls: cannot access /hbtn: No such file or directoryls: cannot access /hbtn: No such file or directorybackups cache crash lib local lock log mail metrics opt run spool tmpalex@~$■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA ReviewRepo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23516 of 1911/3/23, 15:19
13. alias#advancedSimple shell 1.0 +• Implement the alias builtin command• Usage: alias [name[=’value’] …]◦ alias: Prints a list of all aliases, one per line, in the form name=’value’◦ alias name [name2 …]: Prints the aliases name, name2, etc 1 per line, in the formname=’value’◦ alias name=’value’ […]: Defines an alias for each name whose value is given. Ifname is already an alias, replaces its value with value■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review14. Variables#advancedSimple shell 1.0 +• Handle variables replacement• Handle the $? variable• Handle the $$ variablejulien@ubuntu:~/shell$ ./hsh$ ls /varbackups cache crash lib local lock log mail metrics opt run snap spool tmp$ echo $?0$ echo $$5104$ echo $PATH/home/julien/bin:/home/julien/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin$ exit julien@ubuntu:~/shell$ Score: 0.0% (Checks completed: 0.0%)Repo:• GitHub repository: simple_shellScore: 6.25% (Checks completed: 12.5%)Repo:(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23517 of 1911/3/23, 15:19
■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review15. Comments#advancedSimple shell 1.0 +• Handle comments (#)julien@ubuntu:~/shell$ sh$ echo $$ # ls -la5114$ exitjulien@ubuntu:~/shell$ ☑Done!HelpCheck your codeGet a sandboxQA Review16. File as input#advancedSimple shell 1.0 +• Usage: simple_shell [filename]• Your shell can take a file as a command line argument• The file contains all the commands that your shell should run before exiting• The file should contain one command per line• In this mode, the shell should not print a prompt and should not read from stdin■Done?HelpCheck your codeAsk for a new correctionGet a sandboxQA Review• GitHub repository: simple_shellScore: 50.0% (Checks completed: 100.0%)Repo:• GitHub repository: simple_shellScore: 12.5% (Checks completed: 25.0%)Repo:• GitHub repository: simple_shell(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23518 of 1911/3/23, 15:19
Copyright © 2023 ALX, All rights reserved.(/)Project: 0x16. C – Simple Shell | Nairobi Intranethttps://intranet.alxswe.com/projects/23519 of 1911/3/23, 15:19

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *