diff options
| -rwxr-xr-x | a.out | bin | 15720 -> 15720 bytes | |||
| -rw-r--r-- | main.c | 45 |
2 files changed, 26 insertions, 19 deletions
| Binary files differ @@ -9,8 +9,6 @@ #include <unistd.h> #include <stdbool.h> - - #define MAX_HISTORY 100 #define MAX_COMMAND_LENGTH 256 @@ -19,6 +17,11 @@ static int CURRENT_HISTORY_INDEX = 0; static char *COMMAND_HISTORY[MAX_HISTORY] = { NULL}; +void test_print() +{ + printf("print to output"); +} + // DEFAULT SHELL COMMANDS // exit() command void exit_program() @@ -47,29 +50,30 @@ void list_directories() exit(EXIT_SUCCESS); } -// echo emulation command, without variables -void echo(char *command, char *argv) +void print_working_directory() { - if (strcmp(command, "echo") == 0) + char current_working_directory[100]; + + if(getcwd(current_working_directory, sizeof(current_working_directory) != 0)) { - printf("argv"); + printf("%s", current_working_directory); + } + else + { + perror("getcwd() error"); } } -char **save_history(char *user_input) +// echo emulation command, without variables +void echo(char *command, char *argv) { - char **command_history; - - for (CURRENT_HISTORY_INDEX; CURRENT_HISTORY_INDEX < MAX_HISTORY; CURRENT_HISTORY_INDEX++) + if (strcmp(command, "echo") == 0) { - for(CURRENT_COMMAND_INDEX; CURRENT_COMMAND_INDEX < MAX_COMMAND_LENGTH; CURRENT_COMMAND_INDEX++) - { - command_history[CURRENT_HISTORY_INDEX][CURRENT_COMMAND_INDEX] = user_input[CURRENT_COMMAND_INDEX]; - } + printf("argv"); } - return command_history; } + // GET USER INPUT char * get_line() { @@ -82,8 +86,8 @@ char * get_line() } scanf("%s", &(*line_read)); - if (line_read && *line_read) - save_history(line_read); +// if (line_read && *line_read) +// save_history(line_read); return line_read; } @@ -94,12 +98,15 @@ int main(void) char *input = malloc(sizeof(char *) * MAX_COMMAND_LENGTH); while (true) { - printf("SHELL> "); + printf("\nSHELL> "); scanf("%s", input); if (strcmp(input, "exit") == 0) exit_program(); - + else if(strcmp(input, "current_directory") == 0) + print_working_directory(); + else if(strcmp(input, "test") == 0) + test_print(); } return 0; |
