Forum Programmation.c Premier développement en C

Posté par . Licence CC by-sa
Tags :
-1
17
fév.
2017

Bonjour à tous,

Je souhaite faire un petit executable en C pour faciliter ma gestion de document sur mon réseau.

L'objectif est de zipper des répertoires et leurs contenus, pour les déplacer vers une destination.
J'ai déjà un fichier .bat qui zip et renomme le fichier zippé par le nom du répertoire.

Mon executable devra
1-A l'endroit ou se trouve l'executable, appeler le fichier .bat existant pour zipper et renommer tous les répertoires.
2-Déplacer les fichiers zippés vers la nouvelle destination
3-Supprimer les répertoires de la source.

Je pense trouver un environnement de développement C avec une distribution Ubuntu ou debian. Il parait qu'il y a tous les outils qu'il faut.

Pourriez-vous me confirmer et me filer un petit coup de pouce, car je suis novice et cherche à apprendre ?

Je vous remercie.

Supai

  • # Overkill

    Posté par . Évalué à 8.

    De prime abord, faire ça en C, ça semble un peu overkill.
    Tu as a priori juste besoin de générer une archive, la déplacer, et supprimer le dossier source.
    Un script shell me semble bien plus adapté.

  • # comme le dit CFX, c'est un peu overkill

    Posté par . Évalué à 4.

    surtout si c'est pour 'appeler le script.bat' qui fait le boulot.

    dans les outils que tu cherches

    • zip ou tar pour faire ton archive
    • mount pour monter un partage reseau distant dans un dossier local et
      • cp ou mv pour copier/deplacer le fichier vers une desination locale
    • scp rsync pour envoyer le fichier local directement sur une machine distante

    le tout dans un fichier script qui remplacera ton fichier .bat (specifique à windows)

  • # C est pas l'outil le plus adapté…

    Posté par . Évalué à 2.

    Après, si tu cherche à apprendre le C, ce projet semble un peu ambitieux, ça fait beaucoup de chose à apprendre d'un coup :

    − le C (c'est un langage difficile pour plusieurs raisons)
    − la compression en C
    − la manipulation de fichier en C
    − Linux/Unix ?
    − la programmation tout court ?

    Sinon, pour répondre à ta question, il te faut :

    − un éditeur de texte
    − gcc ou clang (ou les deux, pour compiler le C et avoir une analyse de ton programme (ça permet d'avoir des messages d'erreur plus ou moins bons, et des analyses différentes qui permetent de trouver des bugs, avec l'option -Wall).
    − make (dès que tu as plusieurs fichier source, il faut un programme pour compiler ton programme, make sert à ça)
    − valgrind (un outil pratique pour le debug)
    − gdb (si valgrind a échoué)

    Et idéalement, un outil qui fait l'interface entre ces différents composants, personnellement, j'utilise emacs.

    Je pense qu'il faut hiérarchiser ton envie d'apprendre, si c'est le C, commencer avec des choses simples. Si c'est le fait de faire les manipulations de fichier que tu décris, le faire avec des outils standards.

  • # Bonjour

    Posté par . Évalué à 2.

    1-A l'endroit ou se trouve l'executable, appeler le fichier .bat existant pour zipper et renommer tous les répertoires.

    Appeler un .bat depuis un programme en C, programme en C qui ne ferait que ça : c’est ce qu’on appelle un "wrapper", c’est la chose la plus saugrenue que tu puisses faire… (un wrapper en C pour lancer un script batch).

    Comme dit foobarbaz tu pourrais à la rigueur faire un programme en C pour remplacer ton script batch mais pour le coup c’est un peu compliqué comme projet pour débuter le C.

    Et si le but est réellement de :

    pour faciliter ma gestion de document sur mon réseau.

    Le mieux est effectivement de faire un script en shell, qui appellera les outils qui vont bien (tar, gzip, …)

    Faire le tour de toutes les possibilités offertes par tar ou gzip est déjà un sacré exercice en soit… (filtres sur les fichiers, algorithmes de compression, etc…) et le shell est un langage bien plus utile à connaître que le C pour « la vie de tous les jours » sous Unix/Linux.

    C’est quand même utile d’apprendre le C, ne serait-ce que pour le fait que ce soit un langage « proche de la machine », mais il faudrait que tu commences par des exercices beaucoup plus simples. Manipuler une simple chaîne de caractères en C réclame déjà d’avoir compris le concept de pointeurs…

    J’aurais même tendance à plutôt te recommander de t’orienter directement vers le C++. C’est un langage plus évolué que C mais dans la base est la même (tu peux « faire du C » en C++) en profitant quand même de quelque facilité offerte par C++ par rapport à C (rien que pour les entrées/sorties…)

  • # Retour

    Posté par . Évalué à 2. Dernière modification le 18/02/17 à 18:48.

    Bonjour

    Tout d'abord je vous remercie pour tout vos conseils.
    Je vais suivre vos conseils et commencer a travailler sur le shell et en C++.
    Merci pour votre franchise vos conseils et ne pas m'avoir envoyé sur les roses.
    A bientôt pour des questions pour shell et le C++ alors.
    Excellente journée et bon we

    Ah si encore une chose je vous me conseiller ubntu debian ou autre chose.

    • [^] # Re: Retour

      Posté par (page perso) . Évalué à -4.

      Je ne te conseille pas le C++.

      Tu devrais installer archlinux et faire du Haskell.

      • [^] # Re: Retour

        Posté par . Évalué à -2. Dernière modification le 19/02/17 à 19:32.

        Je ne te conseille pas le C++.

        Tu devrais installer archlinux et faire du Haskell.

        A moins d'être masochiste, prends plutôt une vrai distribution unix comme macOS. Pour le language je conseillerais plutôt Scala mais pour des petits script de rien du tout, Haskell est en effet sans doute mieux.

        • [^] # Re: Retour

          Posté par . Évalué à 3.

          j'aurais plutot recommandé le BASIC, sous MSDOS,
          c'est bon le basic :D

          • [^] # Re: Retour

            Posté par . Évalué à 2.

            Ou le macramé.
            Avec tous ces trolls qui sèment des poils, il y a de quoi faire des kilomètres de cordes. (-;

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.