begin process at 2012 05 30 18:55:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Autre

 > 

très urgent: commande ls-l


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

très urgent: commande ls-l

samedi 7 novembre 2009 à 02:54:57 | très urgent: commande ls-l

SAADOULI

bj a tous: voila une implémentation de ls -l en c qui n'est pas complète
il ya quelques erreurs au niveau l'affichage des droits d'accés.....
est ce qu'il ya qq1 qui peut m'aider j'en est vraiment besoin:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <pwd.h>
#include <grp.h>



main(int argc, char *argv[])
{
DIR *rep_cour; //crée un pointeur de type repertoire

struct dirent *entree; // crée un structure entrée repertoire
struct stat info;
struct passwd *p;
struct group *g;

char user[3],group[3],other[3],username,grname;
//# p=getpwuid(info.st_uid);
//# g=getgrgid(info.st_gid);
//Byte us1=0100;




rep_cour = opendir(".");// met dans rep_cour ce qui est lu dans le repertoire courant



while (entree=readdir(rep_cour))// tant que il n'est pas arrivé a la fin du repertoire
{
if(entree->d_name[0] != '.')//test si le premier est un caractÃ&#168;re.
{
stat(entree->d_name,&info);
user[0]=((info.st_mode && 0000000100000000) ? 'r' : '-');
user[1]=((info.st_mode && 0000000010000000) ? 'w' : '-');
user[2]=((info.st_mode && 0000000001000000) ? 'x' : '-');

group[0]=((info.st_mode && 0000000000100000) ? 'r' : '-');
group[1]=((info.st_mode && 0000000000010000) ? 'w' : '-');
group[2]=((info.st_mode && 0000000000001000) ? 'x' : '-');

other[0]=((info.st_mode && 0000000000000100) ? 'r' : '-');
other[1]=((info.st_mode && 0000000000000010) ? 'w' : '-');
other[2]=((info.st_mode && 0000000000000001) ? 'x' : '-');
//p = getpwnam( (int) info.st_uid);
//username = (int) p->pw_name;
//g = getgrnam( (int) info.st_gid);
//grname = (int) g->gr_name;
printf("%d %d %s %s %s %s\n", entree->d_ino,info.st_nlink,user,group,other,/*username,grname,*/entree->d_name);
}
}

return 0;


}
et si possible les couleurs pendant l'affichage.
merci d'avvvvvvvvvvvvvvvvvance..........;;
samedi 7 novembre 2009 à 08:26:21 | Re : très urgent: commande ls-l

TychoBrahe

Salut,

Pour commencer, je te conseille fortement d'utiliser les maccros prédéfinies pour tester le mode plutôt que d'écrire toi même en dur tes masques binaires. `man 2 stat` te les indiquera avec précision.

Pour ce qui est de l'affichage, je te conseille de lire `man 3 printf` et en particulier la partie sur le format. Tu y apprendra ainsi à spécifier une longueur sur laquelle afficher un paramètre.

Je n'ai pas testé ton programme mais, si ça compile, je mise sur un magnifique segfault. Quand on affiche des chaînes de caractères qui ne sont pas terminées par le caractère nul et dont la longueur n'est pas explicitement spécifiée, c'est ce a quoi il faut s'attendre (par exemple les chaînes user, group et other).


Cette discussion est classée dans : include, mode, info, st, entree


Répondre à ce message

Sujets en rapport avec ce message

affichage du chemin d'un fichier lors d'un listage recursif en C [ par zegota ] voici ma procédure de parcours récursif, je l'ai testé elle fonctionne (sauf pour les rep qui commencent par un "." mais ce n'est pas un problme pour Débutant - Capturer KeyBoard [ par MichelAliasMiB ] MiBBonjour,Je commence un cours en VC++ etje dois capturer les touches au clavieravant qu'elle ne soit afficher.De façon simple, quelle est la syntaxe tubes nommés sous linux [ par maxialex5 ] bonjour voila, j'essaie un peu de programmer un tube sous linux pour faire communiquer deux processus; le tube est créé mais je crois que l'ecriture Programmation de la commande ls pour un debutant en langage reseaux C [ par ced57350 ] Bonjour, J'ai pour mission de coder la fonction ls avec le maximum d'option. Pour l'instant j'ai réussi a programmer une commande permettant de faire simulation de la fonction find sous unix [ par azerty22_2 ] je voulais crée un petite programme en C sous unix qui simule la commande find avec ces option ("-perm","-name","-size").j'ai trouver des probléme pou Compilation en mode ligne de commande(DOS) avec Turbo C [ par ousin ] Bonjour, Je cherche à ecrire un programme qui va compiller un autre (je veux dire generer son fichier executable) en utilisant la fonction exec() mais comment distinguer entre fichier et repértoire! [ par almousafer ] salut tlm Je viens d'ecrire une fonction qui parcours le répertoire passé en argument et liste son contenu (merci à Fred), mais il reste encore un pb, probleme du mode graphique [ par youma85 ] salut, je suis un débutant en mode graphique, et j'ai un probléme en mode graphique, lorsque j'éxécute un programme en turbo c ou borland c en mode gr getpixel() en mode console ?? [ par kirby94460 ] Bonjour j'utilise dev c++ en mode console et en mode C(nn pas C++) voici mon code :#include #include #include #include <br Parcours récursif d'un repertoire [ par zegota ] mon parcours ne fonctionne que pour le repertoire passé en parametreet pour ses sous repertoire.. mais il ne vas pas au delas dans l'arborescence.. je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales