2020-09-04 12:32:21 +02:00
|
|
|
/**
|
|
|
|
* @ Author: JunkJumper
|
|
|
|
* @ Link: https://github.com/JunkJumper
|
|
|
|
* @ Copyright: Creative Common 4.0 (CC BY 4.0)
|
|
|
|
* @ Create Time: 04-09-2020 11:43:11
|
|
|
|
* @ Modified by: JunkJumper
|
2020-09-17 10:49:03 +02:00
|
|
|
* @ Modified time: 17-09-2020 10:25:25
|
2020-09-04 12:32:21 +02:00
|
|
|
* @ Description: code c produisant le même résultat qu'un ls.
|
|
|
|
*/
|
|
|
|
|
2020-09-04 11:43:31 +02:00
|
|
|
/// M311 - myls
|
|
|
|
|
|
|
|
#include <stdio.h>
|
2020-09-04 12:32:21 +02:00
|
|
|
#include <sys/types.h>
|
2020-09-10 11:48:43 +02:00
|
|
|
#include <sys/stat.h>
|
2020-09-04 12:32:21 +02:00
|
|
|
#include <dirent.h>
|
|
|
|
#include <stdlib.h>
|
2020-09-10 11:48:43 +02:00
|
|
|
#include <unistd.h>
|
2020-09-10 12:16:39 +02:00
|
|
|
#include <pwd.h>
|
2020-09-04 12:32:21 +02:00
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
DIR *dir;
|
|
|
|
struct dirent *entry;
|
2020-09-10 11:48:43 +02:00
|
|
|
struct stat attribut;
|
2020-09-10 12:16:39 +02:00
|
|
|
struct passwd user;
|
2020-09-10 11:48:43 +02:00
|
|
|
int lesAtt;
|
2020-09-04 11:43:31 +02:00
|
|
|
|
2020-09-04 12:32:21 +02:00
|
|
|
if (argc != 2)
|
|
|
|
{
|
|
|
|
fprintf(stderr, "Syntaxe : %s {le chemin}\n\n", argv[0]);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
dir = opendir(argv[1]);
|
2020-09-10 11:48:43 +02:00
|
|
|
chdir(argv[1]);
|
2020-09-04 12:32:21 +02:00
|
|
|
entry = readdir(dir);
|
2020-09-17 10:49:03 +02:00
|
|
|
printf("%-10s %-3s %-5s %-15s %-15s %-8s %-13s %-30s \n", "Inode", "RWX", "Type", "Propriétaire", "Group Name", "Size", "Time", "Nom de Fichier");
|
2020-09-04 12:32:21 +02:00
|
|
|
while(entry != NULL) {
|
2020-09-10 11:48:43 +02:00
|
|
|
lesAtt = stat(entry->d_name, &attribut);
|
|
|
|
|
|
|
|
if(lesAtt == -1) {
|
|
|
|
perror("Échec stat");
|
|
|
|
exit(2);
|
|
|
|
}
|
2020-09-17 10:49:03 +02:00
|
|
|
printf("%-10d %-3o %-5d %-15d %-15d %-8d %-13d %-30s\n", (int)entry->d_ino, attribut.st_mode&0777, entry->d_type, attribut.st_uid, attribut.st_gid, attribut.st_size,attribut.st_mtime, entry->d_name);
|
2020-09-04 12:32:21 +02:00
|
|
|
entry = readdir(dir);
|
|
|
|
}
|
|
|
|
closedir(dir);
|
2020-09-10 10:48:09 +02:00
|
|
|
return 0;
|
2020-09-04 12:32:21 +02:00
|
|
|
}
|