Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : simulation de la fonction find sous unix [ Linux / Fichier & Disque ] (azerty22_2)

mercredi 19 décembre 2007 à 14:12:56 | simulation de la fonction find sous unix

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 pour parcourir les sous repertoire même dans certain cas pour l'identifier .
voici mon code pour l'option -perm :

#include<stdio.h>

#include<dirent.h>

#include<stdlib.h>

#include<unistd.h>

#include<sys/stat.h>

#include<ctype.h>

#include<errno.h>

#include<stdlib.h>

#include<sys/types.h>

void option_perm(char *perm,char *rep,int DIR)

{

int perm1=0;

int test=0;

int DIR1;

struct dirent *dir,*dir1;

struct stat *st;

if(isdigit(perm[0]))

{

perm1=atoi(perm);

if(perm1>=0&&perm1<=777)

{

st=malloc(sizeof(struct stat));

dir=malloc(sizeof(struct dirent));

dir1=malloc(sizeof(struct dirent));

while((dir=readdir(DIR))>0)

{

test=0;

stat(dir->d_name,st);

if(st->st_mode & S_IRUSR)

test+=400;

if(st->st_mode & S_IWUSR)

test+=200;

if(st->st_mode & S_IXUSR)

test+=100;

if(st->st_mode & S_IRGRP)

test+=40;

if(st->st_mode & S_IWGRP)

test+=20;

if(st->st_mode & S_IXGRP)

test+=10;

if(st->st_mode & S_IROTH)

test+=4;

if(st->st_mode & S_IWOTH)

test+=2;

if(st->st_mode & S_IXOTH)

test+=1;

if(perm1==test)

{

printf("%s/%s\n",rep,dir->d_name);

}

if(strcmp(dir->d_name,"..")!=0)

{

if(S_ISDIR(st->st_mode)==1)

{

if((DIR1=opendir(dir->d_name))>0)

{

option_perm(perm,dir->d_name,DIR1);

}

}

}

}

}

else

perror("erreur");

}

else

perror("erreur");

}

int main(int argc,char *argv[])

{

int DIR;

if((DIR=opendir(argv[1]))>0)

option_perm(argv[2],argv[1],DIR);

else

perror(argv[1]);

return 0;

}
si il existe un personne qui peux m'aide ,il me donne une solution est merci.




Cette discussion est classé dans : test, mode, dir, st, if


Répondre à ce message

Sujets en rapport avec ce message

comment faire un #if "debug/release mode" [ par nord666 ] Salut à tous et à toutes,Je me demande si c'est possible de pouvoir faire quelque chose du genre(j'utilise visual studio 8.0):#if (le mode dans lequel Léger problèmes avec DirectInput [ par philmor34 ] Léger problème avec DirectInputJ'ai créé l'objet  DirectInput8Create dans la class de ma fenêtrej'ai créé une classe clavier pour gérer tout le code D utilisation des flags fstream [ par asari29 ] Bonjour, j'espère que qelqu'un sera me répondre...J'utilise actuellement les fstream dans un programme. Lorsqu'on utilise la méthode open(...), on spé Problème d'affichage avec la fonction SetWindowText [ par piroman14 ] Hi everybody!!Quelqu'un pourrais-t-il m'expliquer pourquoi si SetWindowText(hEdit,"Traitement en cours..."); est avant   if (GetOpenFileName(&ofn)==TR Client FTP en mode passif [ par anek971 ] Bonjour,je tente de créer un "client FTP" pour l'instant tres simpliste qui permet juste de se connecter à un serveur FTP et de lister le contenu du s if(ligne.substr(pos1+1,pos2-pos1-1)==A) !! [ par yanlou ] saluthil ne retourn que deux caractére "D" ou "A"ma question c'est comment je peux fair une boucle :if{}else{} Convertir VB6 en C++ [ par Tybbow ] Bonjour, j'aimerais convertir un code créé en VB6 vers le C++, malheureusement, je n'y connais rien en C++, j'ai essayé de trouver des logiciels, mais Image BMP [ par jeanphilippe37 ] Bj, je voudrais mettre dans un programme en C 1 ou plusieurs images. Dans le mode "windows" ( différent du mode console). Comment dois-je faire ? Lecture de fichier et test d'ouverture [ par Trepanator ] Bonjour,   j'utilise ifstream pour ouvrir un fichier et ensuite je teste ce fichier (est-il ouvert ?). Erreur de compilation [ par anouar27 ] Bjr,Je fais de la programmation sur la Personnalisation d'un logiciel Pro/Engineer pour des clients.J'ai eu un prblm de compilation, ça retourne les e


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.