From 5daf7d1c4a0bd6947f270aa8e8a1500023441c33 Mon Sep 17 00:00:00 2001 From: A01637444 <117192999+A01637444@users.noreply.github.com> Date: Fri, 20 Oct 2023 00:57:11 +0000 Subject: [PATCH] A01637444 --- .vscode/tasks.json | 28 ++++++++++++++++++++++++++++ labs/03/my_terminal | Bin 0 -> 17104 bytes labs/03/my_terminal.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 .vscode/tasks.json create mode 100755 labs/03/my_terminal create mode 100644 labs/03/my_terminal.c diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..08d9005b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc build active file", + "command": "/usr/bin/gcc", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/labs/03/my_terminal b/labs/03/my_terminal new file mode 100755 index 0000000000000000000000000000000000000000..362e7854b7d7cf9911e695f2ecac8570d8b382f7 GIT binary patch literal 17104 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 literal 0 HcmV?d00001 diff --git a/labs/03/my_terminal.c b/labs/03/my_terminal.c new file mode 100644 index 00000000..55cadd42 --- /dev/null +++ b/labs/03/my_terminal.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include + +int main() { + char command[50]; + int status; + + while (1) { + printf("osh> "); + fgets(command, 50, stdin); + + command[strcspn(command, "\n")] = 0; + + if (strcmp(command, "exit") == 0) { + break; + } + + pid_t id = fork(); + + if (id == -1) { + exit(EXIT_FAILURE); + } else if (id == 0) { + execlp(command, command, NULL); + exit(EXIT_FAILURE); + } else { + waitpid(id, &status, 0); + } + } + + return 0; +} \ No newline at end of file