From f717909921b16f507c2ae5c0c1c6e617a51f4add Mon Sep 17 00:00:00 2001 From: rick Date: Tue, 16 Feb 2021 18:25:37 +0100 Subject: [PATCH] =?UTF-8?q?Modification=20biblio=20fonction=20get=5Finput?= =?UTF-8?q?=20La=20fonction=20ne=20modifie=20plus=20le=20param=C3=A8tre=20?= =?UTF-8?q?mais=20retourne=20un=20pointeur=20vers=20la=20chaine=20entr?= =?UTF-8?q?=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/parser/parser.c | 13 ++++++------- src/parser/parser.h | 2 +- src/shell1.c | 30 ------------------------------ 3 files changed, 7 insertions(+), 38 deletions(-) delete mode 100644 src/shell1.c diff --git a/src/parser/parser.c b/src/parser/parser.c index f11e089..c2a970d 100644 --- a/src/parser/parser.c +++ b/src/parser/parser.c @@ -14,10 +14,11 @@ * get_input(): Permet de récupérer la saisie de l’utilisateur * @user_input: string où sera enregistrée l’entrée de l’utilisateur */ -void get_input(char *user_input) +char* get_input() { char *buffer = (char *) malloc(MAX_LENGTH); - memset(user_input, 0, MAX_LENGTH); + memset(buffer, 0, MAX_LENGTH); + printf("\n> "); fgets(buffer, MAX_LENGTH, stdin); while (buffer[0] == '\n') @@ -25,8 +26,8 @@ void get_input(char *user_input) printf("\n> "); fgets(buffer, MAX_LENGTH, stdin); } - strncpy(user_input, buffer, strlen(buffer)-1); - free(buffer); + buffer[strlen(buffer)-1] = '\0'; /* pour ne pas avoir un retour à la ligne */ + return buffer; } /** @@ -39,9 +40,7 @@ void get_input(char *user_input) */ void parse_char(char *args[], char find) { - char *user_input = (char *) malloc(MAX_LENGTH); - get_input(user_input); - + char *user_input = get_input(); char *token = strtok(user_input, &find); int i = 0; diff --git a/src/parser/parser.h b/src/parser/parser.h index 078d64b..afc9c5a 100644 --- a/src/parser/parser.h +++ b/src/parser/parser.h @@ -10,7 +10,7 @@ #define MAX_LENGTH 200 /* taille maximum des tableaux utilisés */ -void get_input(char *user_input); +char* get_input(); void parse_char(char *args[], char find); void tok_space(char *args,char *commands[]); diff --git a/src/shell1.c b/src/shell1.c deleted file mode 100644 index 02768e1..0000000 --- a/src/shell1.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include -#include -#include - -#include "parser.h" - -int main() -{ - char *user_input = (char *) malloc(MAX_LENGTH); - int result, pid; - get_input(user_input); - while (strcmp(user_input, "exit")) - { - pid = fork(); - - if (!pid) - { - execlp(user_input, user_input, NULL); - return 0; - } - else - wait(&result); - - get_input(user_input); - } - free(user_input); - return 0; -}