From af2bdfb47a735ac6335b8d3205bb2341f91833c0 Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Thu, 17 Jan 2019 13:21:50 +0100 Subject: [PATCH] my cp cudzyslow showtree --- Microshell/katalogz/plik1.txt | 3 +- Microshell/microshell | Bin 13712 -> 18080 bytes Microshell/microshell.c | 69 +++++++++++++++++++++++++++++++--- 3 files changed, 65 insertions(+), 7 deletions(-) diff --git a/Microshell/katalogz/plik1.txt b/Microshell/katalogz/plik1.txt index fb37ef9..a832ddb 100644 --- a/Microshell/katalogz/plik1.txt +++ b/Microshell/katalogz/plik1.txt @@ -1 +1,2 @@ -hdhd +To jest plik1.txt +jajajajaj diff --git a/Microshell/microshell b/Microshell/microshell index bcd5c36aa1ea5ace198e96bc3e14f63b30b3a2d3..1e2cd0dde25393ddf66b2bfa25a36baf8879b55d 100755 GIT binary patch literal 18080 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 Ub!Q<{%6`*wL*oJ~Dr&d?Z+_9SLI3~& diff --git a/Microshell/microshell.c b/Microshell/microshell.c index e0d72a6..40ece5a 100644 --- a/Microshell/microshell.c +++ b/Microshell/microshell.c @@ -9,6 +9,7 @@ #include #include #include +#include const int max = 1000; @@ -24,6 +25,15 @@ void cut(char **argv, char *command){ argv[w]=NULL; } +void rmChar(char *str, char garbage) { /*przesledzic jak to dziala!!!!! w opisie sobie napisac*/ + char *src, *dst; + for (src = dst = str; *src != '\0'; src++) { + *dst = *src; + if (*dst != garbage) dst++; + } + *dst = '\0'; +} + void cd (char **argv){ if(argv[1] == NULL){ printf("Add arguments\n"); @@ -94,17 +104,20 @@ void tree (char **argv, char * directory){ printf("Too many arguments\nshowtree takes no arguments \nor exacly 1 argument for desired directory\n"); return; } - else if (argv[1] != NULL && argv[2] == NULL){ - printf("Dokladnie 1 arg\n"); - return; - } else{ if (fork() == 0){ DIR *d; struct dirent *ent; char ndr[max]; int tab = 0; - strcpy(ndr, directory); + + if (argv[1] != NULL && argv[2] == NULL){ /*jeden argument*/ + cd(argv); + getcwd(ndr, sizeof(ndr)); + } + else + strcpy(ndr, directory); + printf("Content of: %s\n", ndr); if ((d = opendir(ndr)) != NULL){ /*wchodzimy do katalogu*/ while ((ent = readdir(d)) != NULL){ /*czytamy zawartosc*/ @@ -140,8 +153,43 @@ void tree (char **argv, char * directory){ } } +void mycp (char **argv){ + if (argv[1] == NULL || argv[2] == NULL){ + printf("Add arguments\n"); + return; + } + else if (argv[3] != NULL){ + printf("Too many arguments\n"); + return; + } + else{ + int file1 = open(argv[1], O_RDONLY); + if (file1 == -1){ + perror("open error"); + return; + } + if (open(argv[2], O_RDONLY) != -1){ + printf("%s already exists!\n", argv[2]); + return; + } + int newfile = creat(argv[2], 0666); + if (newfile == -1){ + perror("create error"); + return; + } + + char bufor[1024]; + int r; + while ((r = read(file1, bufor, sizeof(bufor))) > 0) + write(newfile, bufor, r); + + close(file1); + close(newfile); + } +} + int main (){ - int spath = 1; + int spath = 1, i=0; using_history(); struct passwd *p = getpwuid(getuid()); @@ -176,6 +224,11 @@ int main (){ add_history(komenda); cut(argv, komenda); + while (argv[i] != NULL){ + rmChar(argv[i], 34); + i+=1; + } + i=0; if (argv[0]==NULL) continue; @@ -195,6 +248,10 @@ int main (){ tree(argv, directory); continue; } + else if (!strcmp(argv[0], "mycp")){ + mycp(argv); + continue; + } else if (!strcmp(argv[0], "exit")) break; else