Aller au contenu

Eric_71

Equipe Sécurité*
  • Compteur de contenus

    719
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Eric_71

  1. Hello, Thanks Greywolf !
  2. En partie oui, mais dans le cas du -lt le "l" sert à tester si le argv[2] existe avant de continuer, si oui c'est le suivant qui conditionne la fonction qui sera appelée ( ici "t" ) case 'l': { if(opendir(argv[2]) != NULL) { char* popt; for (popt = &argv[1]; *popt != '\0'; ++popt) { switch (*popt) { case 'a': { .... } break; case 't': { ... Non elle ne retourne rien, elle se contente d'afficher ce qu'on lui demande
  3. Hello Greywolf, Merci pour ta réponse détaillée, je vais tester certaines choses Ce que je voudrais faire c'est juste éviter de répéter les codes des fonctions, le programme fonctionne bien mais j'utilise une fonction par argument passé en ligne de commande, par exemple : test.exe -lt "c:\" va se placer dans c:\ ( chdir(argv[2]) ) puis va utiliser cette fonction : char * AllDat () { DIR *FichA = opendir("."); if (FichA != NULL) { struct dirent *FichL; while ((FichL = readdir (FichA))) { struct stat st; stat (FichL->d_name, &st); { time_t t = st.st_mtime; struct tm tm = *localtime (&t); char s[32]; strftime (s, sizeof s, "%d/%m/%Y %H:%M", &tm); if (!strcmp(FichL->d_name, ".") || !strcmp(FichL->d_name, "..")) continue; printf ("[%s] %s\n", s, FichL->d_name); }} closedir (FichA), FichA = NULL; }} si on utilise ceci : test.exe -la "c:\" il va lancer une autre fonction identique à la précédente mais sans les dates .. et ainsi de suite avec d'autres arguments donc à mon avis répétition de code pour rien .. c'est pour ça que j'avais pensé à donner une valeur différente à une variable pour chaque argument et mettre des conditions suivant sa valeur dans une seule fonction. Mais je suis ouvert à toute autre solution
  4. Hello, Merci pour ta réponse mais ça ne semble pas fonctionner non plus D'autres avis ?
  5. Hello, Comme indiqué dans le titre j'ai un petit souci de variables, ou plutôt pour me servir de celles-ci ... Je précise que je n'ai pas l'habitude de coder en C donc merci de ne pas me frapper ... Je m'explique, j'ai un fichier main.c ( j'en met juste un petit bout pour illustrer ) : PS : pas de remarques sur la tabulation, merci # ici plein d'include ... #include "fonction.h" int main (int argc, char *argv[]) { int i; for (i = 1; i != argc; ++i) { if (argv[i][0] == '-') { char* popt; for (popt = &argv[i][1]; *popt != '\0'; ++popt) { switch (*popt) { ... ici plein de choses ... case 'l': { if(opendir(argv[2]) != NULL) { char* popt; for (popt = &argv[i][1]; *popt != '\0'; ++popt) { switch (*popt) { case 'a': { chdir(argv[2]); AllDA (); return 0; } break; case 'f': { chdir(argv[2]); AllDF (); return 0; } break; ... et encore plein de choses ... Et dans mon fichier fonction.h , bah les fonctions .. Au lieu d'avoir 200 fonction quasi identiques ( une seule ligne change ) dans le .h je voudrais dans une même fonction mettre des if(variable = ...) et donc en fonction de cette variable modifier les actions mais là n'est pas le problème .. le souci c'est que quand je déclare la variable dans le main.c par exemple : case 'f': { chdir(argv[2]); long variable = 4; AllDF (); return 0; } break; Dans la fonction AllDF ( dans le cas présent ) qui se trouve dans le fonction.h je ne peux pas me servir de la variable qui semble avoir perdu sa valeur, je crois que c'est normal mais existe t-il une solution pour conserver la valeur de celle-ci dans la fonction du .h ? J'espère que la question est assez claire et merci à celui(ceux) qui pourra(ont) répondre
  6. Oki , ça fonctionne , merci pour ta contribution il n'à pas tout détecté , je redonne la main à Lien Rag pour la suite Bonne continuation à vous deux et bonne soirée
  7. Merci pour le rapport qui explique pourquoi il ne se lancait pas Bon , cette fois ci tu peux le retélécharger ( pour la dernière fois .. j'éspère .. ) ça doit être bon
  8. Hello vuloxa , J'interviens juste pour prendre quelques renseignements car Lop S&D devrait fonctionner sur ta version de Vista Menu Démarrer / Tous les programmes / Accessoires / Exécuter Colle ceci et valide ( sans le mot code ) : "%SystemDrive%\Lop SD\Lop S&D" /u ensuite retélécharge le , réinstalle le et relance le pour voir Si ( et seulement si ) il ne fonctionne toujours pas , Menu Démarrer / Tous les programmes / Accessoires Fais un clique droit sur Invite de commandes et choisis Exécuter en tant qu'administrateur Colle ceci dans la fenêtre noire , valide et copie/colle le rapport ici ver>tmp.txt& tmp.txt
  9. Eric_71

    Aide en C \Problème

    Ouaip , si je rajoute un #include ... , il ne fonctionne pas sur tous les PC et on ne fait pas grand chose sans .. ça ressemblait à ça : http://cjoint.com/?dhwFNxtoZt Mais bon , j'ai laissé de côté ..
  10. Bonsoir , Juste pour signaler que le tool ne se lance pas sur cette version de Vista , donc ... ... Impossible Et Vundofix produit un rapport même quand il ne trouve rien ... @+
×
×
  • Créer...