From 38e7a0a94e06504dd0a1084dae052c514066fd68 Mon Sep 17 00:00:00 2001 From: esterfreyja Date: Wed, 13 Dec 2023 17:58:56 +0100 Subject: [PATCH] TP2 ex2, plus gitignore a jour --- .gitignore | 1 + TP2/ex2 | Bin 0 -> 17360 bytes TP2/ex2.c | 144 +++++++++++++++++++++++++++++++++++++++++++++++ TP2/pouet/essai1 | 0 TP2/pouet/essai2 | 0 5 files changed, 145 insertions(+) create mode 100644 .gitignore create mode 100755 TP2/ex2 create mode 100644 TP2/ex2.c create mode 100644 TP2/pouet/essai1 create mode 100644 TP2/pouet/essai2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/TP2/ex2 b/TP2/ex2 new file mode 100755 index 0000000000000000000000000000000000000000..ae5f7183372dd8521250b9834bc1f9a094b2e656 GIT binary patch literal 17360 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 literal 0 HcmV?d00001 diff --git a/TP2/ex2.c b/TP2/ex2.c new file mode 100644 index 0000000..dadac04 --- /dev/null +++ b/TP2/ex2.c @@ -0,0 +1,144 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +void my_putnbr(int nb) +{ + char c; + + if (nb < 0) + { + if (nb == -2147483648) + { + write(1, "-", 1); + write(1, "2", 1); + my_putnbr(147483648); + return ; + } + nb = nb * -1; + write(1, "-", 1); + } + if (nb >= 0 && nb < 10) + { + c = nb + '0'; + write(1, &c, 1); + } + if (nb >= 10) + { + my_putnbr(nb / 10); + my_putnbr(nb % 10); + } +} + +void my_putnbrUnsignedLong(long nb) +{ + char c; + + if (nb >= 0 && nb < 10) + { + c = nb + '0'; + write(1, &c, 1); + } + if (nb >= 10) + { + my_putnbr(nb / 10); + my_putnbr(nb % 10); + } +} + +int my_strlen(char *str) +{ + int len; + + len = 0; + while (str[len] != '\0') + len++; + return (len); +} + +char *my_strcat(char *dest, char *src, int len) +{ + int i; + int j; + char *final; + + i = 0; + j = 0; + final = (char*)malloc(len); + while (dest[i] != '\0') + { + final[i] = dest[i]; + i++; + } + final[i] = '/'; + i++; + while (src[j] != '\0') + { + final[i] = src[j]; + i++; + j++; + } + final[i] = '\0'; + return (final); +} + +void showFileInfos(char *fileName) +{ + struct stat fileStat; + + if(stat(fileName, &fileStat) == -1) + { + write(1, "Foirage du statage\n", 20); + exit(1); + } + write(1, fileName, my_strlen(fileName)); + write(1, " ", 1); + my_putnbr(fileStat.st_size); + write(1, " ", 1); + my_putnbrUnsignedLong(fileStat.st_mtim.tv_sec); + write(1, "\n", 2); +} + +void listDirContent(char *leDossier) +{ + DIR *dir; + struct dirent *lesEntrees; + char *fileAbsolPath; + size_t path_length; + + dir = opendir(leDossier); + if(!dir) + { + if(errno == ENOTDIR) //C'est quand meme pas mal errno, je decouvre + { + write(1, "t'es bourré, on veut le nom d'un dossier et pas autre chose\n", 61); + exit(1); + } + write(1, "Probleme ouverture dossier\n", 28); + } + path_length = my_strlen(leDossier) + NAME_MAX + 2; + fileAbsolPath = (char*)malloc(path_length); + while((lesEntrees = readdir(dir))) + { + fileAbsolPath = my_strcat((char *)leDossier, lesEntrees->d_name, path_length); + showFileInfos(fileAbsolPath); + } + free(fileAbsolPath); + closedir(dir); +} + +int main(int argc, char **argv) +{ + if(argc != 2) + { + write(1, "t'es bourré, on veut le nom d'un dossier qu'on t'dis\n", 54); + exit(1); + } + listDirContent(argv[1]); + return 0; +} diff --git a/TP2/pouet/essai1 b/TP2/pouet/essai1 new file mode 100644 index 0000000..e69de29 diff --git a/TP2/pouet/essai2 b/TP2/pouet/essai2 new file mode 100644 index 0000000..e69de29