Aide Linux - Liste de diffusion Ze-Linux
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ Language C ] Apprendre la programmation en C



je te conseille un cours disponible sur le net pour le c/c++:
http://casteyde.christian.free.fr/cpp/cours/


On Tue, 2003-07-01 at 20:51, Yves wrote:
Slt la liste,

Chez moi j'en ai fais mon os principal avec linux il y a de ça + de 6 
mois, windows contient quelques jeux et ne démarre que 1 fois / mois 
maintenant. Alors que linux mini 1 fois/jour mini.
Je me suis mi à fond dans linux, internet au niveau de la doc. En 2 
mois, j'en savais suffisement pour en faire mon os principal et en faire 
autant sous win que sous linux.

J'aimerais programmer sous linux, j'ai acheter un bouquin de 
programmation " Programmation système en C sous linux ". Au debut on 
nous explique les outils qui sont sous linux,  ensuite je commence à 
attaquer les intructions C et à partir de là je trouve qu'on commence 
par Z pour allez jusqu'a A dans ce bouquin.
C'est comme si on vous montrait comment paramétrer mon machine sous 
linux en mode console alors que vous ne savez pas vous déplacer, copier, 
déplacer les fichiers, créer supprimer...

Je vous donne un ex tirer du couquin :

Premières instructions que j'apprends alors que je ne sais pas commenter 
un fichier source " fork() "" getppid () " et " getpid " C'est expliquer 
en gros ( je dis en gros car on n'esplique pas ce qu'on peux mettre dans 
les parentèses et il doit manquer surement d'autres trucs).
Ensuite il propose un exemple appelé exemple_fork.c (désolé pour la mise 
en forme mais un espace ne correspond pas à la taille d'un caractère 
sous mozilla ):


    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <errno.h>
    #include <sys/wait.h>

    int
main (void)
{
    pid_t   pid_fils;

    do {
          pid_fils = fork ();
    } while ((pid_fils == -1) && (errno == EAGAIN));

    if (pid_fils == -1) {
       fprintf (stderr, "fork () impossible, errno=%d\n, errno);
    }
    if (pid_fils == 0) {
       fprintf (stdout, "Fils : PID=%d,  PPID=%d\n",
          getpid (), getppid ())
       return (0);
    } else {
       fprintf (stdout, "Père : PID=%d, PPID=%d\n",
             getpid (), getppid ());
       wait (NULL);
       return (0);
    }
}

Il montre ce que le prog affiche lors de son exécution

$ ./exemple_fork
Père : PID=31382, PPID=30550, PID fils=31383
Fils : PID=31383, PPID=31382
$

Avec les 3 fonctions apprises, j'ai compris 10% du programme ( aucun 
commentaire dans le prog ou après sauf sur "wait (NULL)" et 100% des 
valeurs affichées lors de son exécution sans même voir marquer Père ou 
Fils les résultats parlent d'eux même.
Comment peut-on donner un exemple, comme ça, sans rien expliquer des 
autres fonctions utilisés.
Peut être que le livre ne correspond pas à ce que j'attendais.

wait (NULL) sert à attendre la fin de l'éxécution du fils avant le père. 
Sinon on aurait pu observer:

$ ./exemple_fork
Père : PID=31382, PPID=30550, PID fils=31383
$ Fils : PID=31383, PPID=1

Mes questions sont :
Comment avez-vous appris le language C ?
Quel est la différence avec C++ et C# ( est-ce des autres languages 
totalement différents et peut-il compléter le langaguge C ( un peut 
comme le html et javascprit )
Quel livre de programmation C me conseilleriez-vous pour un gas qui ne 
connait rien en programmation ?

Merci, d'avoir tout lu l'email.
@+




----------------------------------
Informations, désabonnement, règles, obligations sur la liste Aide-Linux :
http://lists.ze-linux.org/howto_ml.html
--
David Wartel <dwartel@ulb.ac.be>


Aide Linux - Liste de diffusion Ze-Linux