/* * File: mysh.c * Author: Arthur Brandao * * Created on 31 octobre 2018, 12:43 */ #include #include #include #include "parser.h" void test_write(){ char* a = "azerty\n"; int tmp = write(1, a, strlen(a)); printf("%d\n", tmp); } void current_rep(){ char buffer[512]; if (getcwd(buffer, sizeof(buffer)) == NULL){ perror("Erreur getcwd() : "); } else { printf("current working directory is: %s\n", buffer); } } void cd(int argc, char** argv){ current_rep(); if(argc > 2) { printf("too many arguments : 1 required, %d given\n", argc-1); } else { if(argc == 1) { if(chdir("/") == ERR){ perror("Erreur chdir() : "); } } else { if(chdir(argv[1]) == ERR){ printf("path does not exist\n"); } } } current_rep(); } int main(int argc, char* argv[]) { /*CommandTab ct; char str[500]; int a; //Recup ligne //printf("%s\n", fgets(str, 500, stdin));& memset(str, 0, 500); a = read(STDIN, str, 500); printf("%s\n", str); //Separe les commandes a = parse_line(&ct, str); printf("Result : %d\n\n", a); //Parse les commandes a = parse_all_command(&ct); printf("Result : %d\n\n", a); //Affiche resultat for(int i = 0; i < ct.length; i++){ Command* c = ct.cmd[i]; printf("Commande %d (%s) : \n", i, c->name); for(int j = 0; j < c->argc; j++){ printf(" Argument %d : %s\n", j, c->argv[j]); } printf("\n"); } //Supprime clean_command(&ct); */ cd(argc, argv); return (EXIT_SUCCESS); }