Bonjour,
J'ai besoin d'aide de connaisseurs en C , SVP ...
Je souhaite créer une fonction en C qui s'exécutera sous Linux.
Un peu comme ls, je veux lister les fichiers et répertoires d'un chemin indiqué ou du dossier courant si on ne précise pas de chemin.
Ce code arrive a lister uniquement les fichiers contenu :
***************************************************************
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main (int argc, char *argv[])
{
DIR *dirp;
struct dirent *entry;
switch (argc) {
case 2 :
dirp = opendir (argv[1]);
if (dirp == NULL) {
fprintf(stderr,"ne sait pas ouvrir %s \n",argv[1]);
return 0;
}
for(entry=readdir(dirp);entry!=NULL;entry = readdir(dirp)) {
if (entry->d_name[0] != '.')
printf ("%s\n",entry->d_name);
}
closedir(dirp);
break;
default :
fprintf(stderr,"Usage : myls dir_name \n" );
break;
}
return 0;
}
*****************************************************************
Moi, je souhaite avoir 2 options possibles :
-l (qui liste contenu fichiers + dossiers simplement Niveau 1 en formatant les colones)
exemple : -rwxr-xr-x 1 astek operator 497 Oct 13 14:00 stream.a*
-R (Pour lister récursivement le dossier, soit son contenu + le contenu de ses dossiers)
Ces options doivent pouvoir être passées dans un sens quelconque et se cumuller.
Sans l'option -l , on ne gère pas le formatage en colones.
Il doit être capable de faire un "ls -l /dev /usr/sbin".
Je vous avoue être un peu perdu, donc toute aide concrète me sera la bienvenue !!!
Par avance UN ENORME MERCI !!