FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Compréhension d'un code

Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.

Répondre

Afin d’empêcher la création automatisée de comptes, nous vous demandons de réussir le défi ci-contre.
Smileys
:D :) :-) ;) :| :( :cry: :cheers: :hourra: :mv: :lol: :mdr: :bonjour: :hello: :jap: :siffle: :bisou: :P :o :x :roll: :good: :bad: :super: :reflexion: :suspect: :? :oops: :peur: :zen: :boude: :bug:

Revue du sujet : Compréhension d'un code Étendre la vue

Re: Compréhension d'un code

par nergens » sam. 19 sept. 2015 10:26
Bonjour,

Votre sujet n'a jamais reçu de réponse et nous en sommes désolés... :(

Nous espérons sincèrement vous revoir bientôt si vous avez d'autres questions et nous ferons le maximum pour vous répondre le plus rapidement et complètement possible.

A bientôt
:bonjour:

Compréhension d'un code

par Gabriel Oliveira » lun. 1 déc. 2014 12:26
Bonjour tout le monde, étant nouveau sur le forum, je me présente vite fait. Je m'appele donc Gabriel, j'ai 18ans, et depuis ce début d'année j'ai commencé des études d'informatique. N'ayant jamais pratiqué avant, je galère un peu plus que la bonne majorité des gens de ma promo. On m'a demandé de faire un code, celui de my_ls. Un ami m'a donné son code pour que je comprenne comment commencé ( je ne peux pas tricher, et ne veux pas, je risque trop ^^' ) mais je suis un peu largué, il a utilisé trop de commande que je ne connais pas... Je vous ré écrit le code ci-dessous, alors si quelqu'un a la patience et la gentillesse de m'expliquer, ligne par ligne, ce qu'il fait, ce serait top !
Merci d'avance à la personne qui prendra le temps de m'expliquer :)

#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include "my_ls.h"

int main(int ac, char **av)
{
if (ac == 1)
no_opt();
else if (ac == 2 && !my_strcmp(av[1], "-l"))
opt_l();
return (0);
}

int no_opt()
{
DIR *dirp;
struct dirent *d;
const char *name;

name = ".";
dirp = opendir(name);
if (dirp == NULL)
exit (0);
d = readdir(dirp);
if (d == NULL)
exit (0);
my_putstr(d->d_name);
my_putchar(' ');
while ((d = readdir(dirp)) != NULL)
{
if (d == NULL)
exit (0);
if (d->d_name[0] != '.')
{
my_putstr(d->d_name);
my_putchar(' ');
}
}
my_putchar('\n');
return (0);
}

int opt_l()
{
DIR *dirp;
struct dirent *d;
const char *name;

name = ".";
dirp = opendir(name);
if (dirp == NULL)
exit (0);
d = readdir(dirp);
if (d == NULL)
exit (0);
my_putstr(d->d_name);
my_putchar('\n');
while ((d = readdir(dirp)) != NULL)
{
if (d == NULL)
exit (0);
my_putstr(d->d_name);
my_putchar('\n');
}
return (0);
}

Voila donc son fichier principal, le my_ls.c . Ce que j'ai compris, c'est que si ac == 1, le code effectue la commande my_ls de base, donc ça affiche les éléments du dossier, et sinon, si on entre -l en option, cela les affiches en colonne. Cependant, des tests que j'ai fait, peu importe l'option que l'on met, si il y en a une, le résultat est toujours le même, mais c'est pas important.
Pour que tout ça marche, il a aussi un fichier my_ls.h donc, contenant my_putchar, my_putstr, my_strcmp, my_strlen etc... ainsi que les prototypes des fonctions. Une fois compiler, j'option donc les deux résultats cités ci-dessus, la commande ls et -l (même si n'importe quelle lettre marche aussi).
Cependant, lors de la compilation, un fichier.gch se crée, pourquoi ? Qu'est ce que c'est ?

En espèrant que vous pourrez m'aider, bonne journée à vous ! :)

Hello Désolé , mais je ne compren[…]

image

Bonjour, Je viens d'appliquer l'excellent tutu de […]

aide pour logiciel Adobe

Bonjour a tous, je suis nouveau sur le forum et je[…]

Fenêtre Taskend.exe

https://forum.pcastuces.com/img/55eeddd3909225e05[…]