diff --git a/2020-2021/S3T_TP_01_SGF-1/myls.c b/2020-2021/S3T_TP_01_SGF-1/myls.c index 1f3d10d..75c3d3e 100755 --- a/2020-2021/S3T_TP_01_SGF-1/myls.c +++ b/2020-2021/S3T_TP_01_SGF-1/myls.c @@ -4,7 +4,7 @@ * @ Copyright: Creative Common 4.0 (CC BY 4.0) * @ Create Time: 04-09-2020 11:43:11 * @ Modified by: JunkJumper - * @ Modified time: 10-09-2020 10:47:45 + * @ Modified time: 10-09-2020 11:46:13 * @ Description: code c produisant le même résultat qu'un ls. */ @@ -12,13 +12,17 @@ #include #include +#include #include #include +#include int main(int argc, char *argv[]) { DIR *dir; struct dirent *entry; + struct stat attribut; + int lesAtt; if (argc != 2) { @@ -27,10 +31,17 @@ int main(int argc, char *argv[]) } dir = opendir(argv[1]); + chdir(argv[1]); entry = readdir(dir); - printf("%-10s %-5s %-30s\n", "Inode", "Type", "Nom de Fichier"); + printf("%-10s %-5s %-30s %-30s\n", "Inode", "Type", "Nom de Fichier", "Stats inode"); while(entry != NULL) { - printf("%-10d %-5d %-30s\n", (int)entry->d_ino, entry->d_type, entry->d_name); + lesAtt = stat(entry->d_name, &attribut); + + if(lesAtt == -1) { + perror("Échec stat"); + exit(2); + } + printf("%-10d %-5d %-30s %-30d\n", (int)entry->d_ino, entry->d_type, entry->d_name, attribut.st_ino); entry = readdir(dir); } closedir(dir);