IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Implementation en langage C de la Commande "ls" ou "cd" de LINUX


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Implementation en langage C de la Commande "ls" ou "cd" de LINUX
    Please est ce que quelqu'un peut m'aider, je dois implementer un commande linux ( mkdir, ls, cd,...... ou less) mais je ne sais pas par où commencer. svp

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    C'est Unix ou Linux, mais pas Lunix.

    Si tu as le choix, je te conseille la commande sync (et surtout pas cd sous peine de grosses déconvenues ...)

    Par où commencer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    man -a sync
    vi sync.c
    make sync
    ɹǝsn *sıɹɐlos*

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 352
    Points : 42 824
    Points
    42 824
    Par défaut
    Pour implémenter ls, regardes du coté de scandir, pour cd regardes chdir.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    pour cd regardes chdir.
    Attention, un cd fonctionnel ne peut pas être implémenté en tant que commande externe, c'est forcément une builtin du shell.
    ɹǝsn *sıɹɐlos*

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 352
    Points : 42 824
    Points
    42 824
    Par défaut
    Oui, cd est une commande interne au shell, par contre il est possible de créer un exécutable cd avec chdir qu'il faudrra alors appeler par ./cd
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Il est bien sûr possible de créer un exécutable appelant chdir, et c'est même imposé par POSIX, mais l'intérêt d'une telle commande est extrèmement limité puisqu'elle ne fonctionnera pas comme attendu.
    ɹǝsn *sıɹɐlos*

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 700
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Salut,
    Citation Envoyé par jlliagre Voir le message
    Attention, un cd fonctionnel ne peut pas être implémenté en tant que commande externe, c'est forcément une builtin du shell.
    pourquoi ?

    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Par ce que le répertoire courant est une propriété de chaque programme qui est héritée par les commandes exécutées. Une commande externe ne peut pas modifier le répertoire courant du programme appelant (ici un shell). Le chdir de la command externe va modifier son propre répertoire courant, ce qui ne présente qu'un intérêt très limité puisque cette commande externe va aussitot terminer son exécution.
    ɹǝsn *sıɹɐlos*

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 352
    Points : 42 824
    Points
    42 824
    Par défaut
    Par ce que le répertoire courant est une propriété de chaque programme qui est héritée par les commandes exécutées. Une commande externe ne peut pas modifier le répertoire courant du programme appelant (ici un shell)
    Ben oui, je mérite un -1 pour ne pas y avoir pensé.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'utilise simplement la commande change_dir avec le lanage Ada et ça change effcetivement le répertoire corrant. si il est différent évidemement.
    Je voudrais savoir si c'est spécifique à Ada ou si le C est trop bas niveau pour le faire ?
    Merci pour vos réponses !

  11. #11
    Invité
    Invité(e)
    Par défaut
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    cat Archman/Archman/src/main.c
     
     
    /* This program is simply test of envp main parameter. */
     
     
     
     
    #include <stdio.h>
    int errno = 0;
    int arg_index = 0;
    int env_index = 0;
     
    int main (int argc, char *argv[], char *envp[]) {
     
     
      for (arg_index = 0; arg_index < argc; arg_index++)
        printf("argv[%d] = %s\n" , arg_index, argv[arg_index]);
     
      printf("\n");
     
     
     
      while (envp[env_index] != '\0')
        {
     
      printf("envp[%d] = %s\n" , env_index, envp[env_index]);
     
      env_index++;
    }
     
      return errno;
    }

    J'ai fait ça en pensant bien faire, qu'en pensez vous ?

  12. #12
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par jovalise Voir le message
    Je voudrais savoir si c'est spécifique à Ada ou si le C est trop bas niveau pour le faire ?
    Non, C comme la plupart des langages de programmation permet de changer le répertoire courant du programme exécuté.

    Les commentaires précédents portent sur le fait qu'aucun langage ne permet d'écrire un programme qui change le répertoire courant du shell qui a lancé.
    ɹǝsn *sıɹɐlos*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Reconnaissance vocale, traitement du langage naturel et controle commande
    Par arnaud29360 dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 19/10/2013, 12h54
  2. Réponses: 6
    Dernier message: 27/10/2006, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo