Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. Programmation
  3. Développement de logiciels
  4. C
  5. Cours #0 - Avant propos et outils

Cours #0 - Avant propos et outils

Scheduled Pinned Locked Moved C
15 Posts 7 Posters 4.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AlexMogA
    AlexMogA
    AlexMog
    Modérateur spécialisé
    wrote on last edited by
    #1

    <p>Bonjour à tous, et bienvenue dans ce premier cours dédié au C.<br/><br/>
    Dans ce cours, nous allons voir pourquoi il est important de comprendre et de programmer en C, puis nous passeront à une partie plus pratique en regardant les outils qui nous sont proposés pour cela.<br/><br/><br/><strong>I- Pourquoi apprendre le C?</strong><br/><br/>
    Le C est un langage le plus bas niveau qui existe (après l'ASM bien entendu!), il permet donc de mieux comprendre le fonctionnement de sa machine.<br/><br/>
    Bas niveau? Cela signifie qu'il est simple?<br/><br/>
    Bas niveau ne corresponds pas au niveau de simplicité du C. Il s'agit en faite d'un niveau par rapport à la machine. Plus un langage est bas niveau, plus il sera proche du fonctionnement de la machine, donc difficile. Plus il sera bas niveau, plus il nous permettera de comprendre le fonctionnement de la machine.<br/><br/><br/>
    Nous allons donc avoir plusieurs cours, en ayant pour but de comprendre comment fonctionne notre machine. Pour cela, nous allons nous orienter vers une programmation impérative que nous permet le C, en nous forçant à n'utiliser QUE des appels system (Donc pas de libc! (à titre informatif: c'est la méthode Epitech)). Nous seront donc obligés de re-créer nos propres outils de travail!<br/><br/><br/>
    Vous l'aurez compris: les prochains cours ont pour but de vous apprendre à utiliser de façon extrême le C. Sans utiliser les outils déjà mis à disposition (libs, etc...), pour vous apprendre à comprendre comment ceux-ci fonctionnent!<br/><br/><br/><strong>II- Les outils pour programmer en C</strong><br/><br/>
    Le tout premier outils que je vous conseille, c'est d'utiliser LINUX.<br/><br/><em>Pourquoi Linux?</em><br/><br/>
    Eh bien c'est très simple: Linux propose énormément d'outils de débugage, et beaucoup d'outils de programmation (Make, Valgrind, GDB, Emacs etc...). Ainsi qu'une documentation détaillée des appels system et de la libc (grâce notamment à la commande "man"). Enfin, une protection plus rapprochée du système qui vous évitera de mauvaises suprises lorsque vous jouerez avec la mémoire (je conseille fortement d'utiliser les limitations de ram par users pour éviter les forkbombs et autres malloc infinis). Je vous conseille donc fortement d'utiliser Linux.<br/><br/>
    De mon côté, j'ai opté pour un Debian sur lequel j'ai installé une interface graphique et tout les outils nécéssaires! Je conseille fortement Mint qui est basé sur Debian.<br/><br/>
    Vous pouvez utiliser une machine virtuelle pour faire tourner votre Linux si vous ne souhaitez pas le rajouter au Dump!<br/><br/><br/>
    Ensuite, les outils de base:<br/><br/>
    Nous allons programmer en utilisant 5 outils très importants:<br/><br/><strong>Emacs:</strong> C'est l'éditeur qui va nous permettre d'éditer nos codes en C. Il est très pratique, mais il faut connaitre les syntaxes et les racourçis qu'il propose!<br/><br/><strong>GDB:</strong> C'est un excellent débugueur qui permet de fixer des points d'arrêt sur son programme, pour réussir à trouver les problèmes de notre programme!<br/><br/><strong>Valgrind</strong>: C'est un de mes outils préférés: Il permet de savoir si vous avez bien free tout vos malloc (et donc, bien vidé toute la mémoire) et de repérer les segfaults (à notter: il faut rajouter -g3 aux flags de compilation pour que celui-ci marche pleinement, n'oubliez surtout pas de supprimer -g3 de vos makefiles à la version finale. -g3 rends l'exécutable très lourd).<br/><br/><strong>Make</strong>: L'outil Make est l'un des plus importants: il nous permettra de créer un "Makefile" qui va nous permettre, grâce à la commande Make, de compiler, et nétoyer notre programme facilement.<br/><br/><strong>htop ou top</strong>: C'est un invité de commandes pour unix, qui va nous permettre de voir l'avancement et l'utilisation de notre RAM/CPU.<br/><br/><br/>
    Voilà, je vous es donc fait une courte introduction sur tout ce qui es des outils et de la programmation en C!<br/><br/><br/>
    Rendez-vous au prochain cours!<br/><br/><br/><br/><br/>
    Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr</p>

    Multiplayer GameDev @ Unexpected
    

    Mon CV

    1 Reply Last reply
    6
    • AzadA
      AzadA
      Azad
      wrote on last edited by
      #2

      <p>Bwaaaah, ça me manquait !<br/><br/>
      Excellent guide, comme la première fois que je l'ai vu. 😉 <br/>
      +1 Rep.</p>

      Administrateur du forum.
      Contactez-moi par message privé ou par mail.

      1 Reply Last reply
      0
      • HomereH
        HomereH
        Homere
        wrote on last edited by
        #3

        <p>Merci du cours.</p>

        1 Reply Last reply
        0
        • NelidonN
          NelidonN
          Nelidon
          wrote on last edited by
          #4

          <p>Hâte de voir la suite.</p><p>
          +1</p>

          1 Reply Last reply
          0
          • SoulalexS
            SoulalexS
            Soulalex
            wrote on last edited by
            #5

            <p>Salut Alex,</p>
            <p> </p>
            <p>Est ce que tu pourrais nous en dire plus sur les outils que tu proposes pour programmer ? (comment on s'en sert et tout)</p>
            <p> </p>
            <p>Merci 🙂 </p>

            Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

            1 Reply Last reply
            0
            • AlexMogA
              AlexMogA
              AlexMog
              Modérateur spécialisé
              wrote on last edited by
              #6

              <blockquote class="ipsQuote" data-cite="Soulalex" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="3892" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1396101066" data-ipsquote-username="Soulalex"><div>
              <div>
              <p>Salut Alex,</p>
              <p> </p>
              <p>Est ce que tu pourrais nous en dire plus sur les outils que tu proposes pour programmer ? (comment on s'en sert et tout)</p>
              <p> </p>
              <p>Merci 🙂 </p>
              </div>
              </div></blockquote>
              <p>Je vous conseille de lire les mans à ce niveau là 😉 </p>

              Multiplayer GameDev @ Unexpected
              

              Mon CV

              1 Reply Last reply
              0
              • D
                D
                Droby
                wrote on last edited by
                #7

                <p>Bonne intro, je vais pouvoir continuer mon apprentissage du C avec toi ! J'ai déjà débuté avec des tek+ a apprendre les bases du C et surtout la norme. Sinon si tu as le temps pour faire un tuto Git sa peut être sympa.</p>

                Bonne affaire ici

                1 Reply Last reply
                0
                • AlexMogA
                  AlexMogA
                  AlexMog
                  Modérateur spécialisé
                  wrote on last edited by
                  #8

                  <blockquote class="ipsQuote" data-cite="Drobat" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="5270" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1397156716" data-ipsquote-username="Drobat"><div>
                  <div>
                  <p>Bonne intro, je vais pouvoir continuer mon apprentissage du C avec toi ! J'ai déjà débuté avec des tek+ a apprendre les bases du C et surtout la norme. Sinon si tu as le temps pour faire un tuto Git sa peut être sympa.</p>
                  </div>
                  </div></blockquote>
                  <p>J'y penserais 🙂 </p>
                  <p>Tu es à epitech? ^^</p>

                  Multiplayer GameDev @ Unexpected
                  

                  Mon CV

                  1 Reply Last reply
                  0
                  • D
                    D
                    Droby
                    wrote on last edited by
                    #9

                    <blockquote class="ipsQuote" data-cite="AlexMog" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="5312" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1397244338" data-ipsquote-username="AlexMog"><div>
                    <div>
                    <p>J'y penserais 🙂 </p>
                    <p>Tu es à epitech? ^^</p>
                    </div>
                    </div></blockquote>
                    <p>Je suis tek0 Paris. Je connais pas mal de monde là bas déjà et j'espère réussir mon année (si un tek+ poursuit son apprentissage avec tes cours piscine à cette période de l'année c'est inquiétant pour lui je pense ^^ )</p>

                    Bonne affaire ici

                    1 Reply Last reply
                    0
                    • AlexMogA
                      AlexMogA
                      AlexMog
                      Modérateur spécialisé
                      wrote on last edited by
                      #10

                      <blockquote class="ipsQuote" data-cite="Drobat" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="5332" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1397252201" data-ipsquote-username="Drobat"><div>
                      <div>
                      <p>Je suis tek0 Paris. Je connais pas mal de monde là bas déjà et j'espère réussir mon année (si un tek+ poursuit son apprentissage avec tes cours piscine à cette période de l'année c'est inquiétant pour lui je pense ^^ )</p>
                      </div>
                      </div></blockquote>
                      <p>haha exact, surtout que mes cours sont très proches de ceux piscine 🙂 .</p>
                      <p>Bref, bienvenue à toi dans la famille Epitech 🙂 </p>

                      Multiplayer GameDev @ Unexpected
                      

                      Mon CV

                      1 Reply Last reply
                      0
                      • AzadA
                        AzadA
                        Azad
                        wrote on last edited by
                        #11

                        <blockquote class="ipsQuote" data-cite="Drobat" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="5332" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1397252201" data-ipsquote-username="Drobat"><div>
                        <div>
                        <p>Je suis tek0 Paris. Je connais pas mal de monde là bas déjà et j'espère réussir mon année (si un tek+ poursuit son apprentissage avec tes cours piscine à cette période de l'année c'est inquiétant pour lui je pense ^^ )</p>
                        </div>
                        </div></blockquote>
                        <p>
                        (Ramène les tekiens ici !)</p>
                        <p>
                        D'ailleurs, sur le premier Melinyel, si mes souvenirs sont bons, AlexMog en avait marre d'aider ses amis de chez 42 et il les renvoyaient ici. Du coup, sur les logs, j'avais toujours pleins de visiteurs sur des sujets en particuliers.</p>

                        Administrateur du forum.
                        Contactez-moi par message privé ou par mail.

                        1 Reply Last reply
                        0
                        • AlexMogA
                          AlexMogA
                          AlexMog
                          Modérateur spécialisé
                          wrote on last edited by
                          #12

                          <p>haha effectivement 😄 </p>

                          Multiplayer GameDev @ Unexpected
                          

                          Mon CV

                          1 Reply Last reply
                          0
                          • F
                            F
                            FaKe77
                            wrote on last edited by
                            #13

                            <blockquote class="ipsQuote" data-cite="AlexMog" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="1738" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1394971014" data-ipsquote-username="AlexMog"><div>
                            <div>
                            <p>Vous pouvez utiliser une machine virtuelle pour faire tourner votre Linux si vous ne souhaitez pas le rajouter au Dump!</p>
                            </div>
                            </div></blockquote>
                            <p> </p>
                            <p>Pour plus d'infos, une petite vidéo 😉 </p>
                            <p></p><div class="ipsEmbeddedVideo" contenteditable="false"><div><iframe allowfullscreen="true" data-embed-src="https://www.youtube.com/embed/2d0jVnJdM3I?feature=oembed" frameborder="0" height="270" src="//melinyel.net/applications/core/interface/js/spacer.png" width="480"></iframe></div></div><p></p><p>
                            Dans le sujet : <iframe data-embed-src="<base_url>/topic/740-virtualisation-virtualbox/?do=embed" data-embedcontent="" frameborder="0" src="//melinyel.net/applications/core/interface/js/spacer.png"></iframe></p>

                            1 Reply Last reply
                            0
                            • D
                              D
                              Droby
                              wrote on last edited by
                              #14

                              <blockquote class="ipsQuote" data-cite="FaKe77" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="7951" data-ipsquote-contentid="169" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1400888418" data-ipsquote-username="FaKe77"><div><p>Pour plus d'infos, une petite vidéo 😉 </p></div></blockquote>Tu devrais plutôt mettre un lien vers ton topic en disant "j'ai fait un tuto sur comment installer et configurer une machine virtuelle"

                              Bonne affaire ici

                              1 Reply Last reply
                              0
                              • AzadA
                                AzadA
                                Azad
                                wrote on last edited by
                                #15

                                <p>Je l'ai ajouté. 🙂 </p>

                                Administrateur du forum.
                                Contactez-moi par message privé ou par mail.

                                1 Reply Last reply
                                0

                                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                With your input, this post could be even better 💗

                                Register Login
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Login or register to search.
                                Powered by NodeBB Contributors
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups