Recoder ls (linux) en c

bibounder -  
Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai un projet a réaliser, le but étant de recoder la commande "ls" présent sous linux.
OK ce sujet a déjà été traiter dans d'autres topics, mais le problème c'est que nous n'avons pas le droit d'utiliser printf, scanf et toutes les autre fonction qui nous simplifierais la vie.
Je ne sais absolument pas par où commencer. Merci d'avance.

4 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Il faudrait voir exactement ce à quoi tu as le droit...
    Fonction système (genre read()) ? Quelques fonctions standard (genre fread()) ?
    Etc.
    Cdlt,
    0
  2. sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   50
     
    Bonsoir
    Pour commencer "LS" n'est pas une fonction mais bien un programme que l'on appelle pour lister un répertoire et qui prend des arguments et si d'autre fonction vous sont interdite alors vous utiliser write par exemple
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Personne a dit que ls était une fonction ;-).
      Après faut voir si fwrite() ou write() est autorisé...
      Et d'autres aussi genre readdir() et Cie.
      0
    2. sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   50
       
      Pas faut :-)
      mais bon si c'est juste printf et compagnie à ne pas utilise le reste est autoriser
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Tout dépend de ce que comprend "compagnie"... Je pense notamment aux fonctions système
      0
    4. sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   50
       
      Alors si c'est le cas passons par la fonction
      int printk()
      

      mais attention celle-ci est pour réserver pour le système lui-même ont le noyau les driver etc.
      0
    5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Si les fonctions systèmes sont autorisées, alors utiliser la fonction write() qui a le mérité d'être POSIX. D'où mon tout premier post :-))).
      0
  3. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
     
    Toi, tu est à epitech, toi !

    commence par recoder getchar et putchar, fonctions qui te permettent respectivement d'obtenir et d'afficher un caractère.

    Puis, cherche du côté des API système, pour lister un dossier.

    Enfin, il faudra bosser avec des structures et listes chaînées ...

    Je te laisse chercher !
    0
  4. Thomato87 Messages postés 117 Statut Membre 16
     
    A Epitech on a déjà rendu ce sujet, je pense qu'il est plutôt de 42 ;)
    0
    1. Sugel Messages postés 4293 Date d'inscription   Statut Membre Dernière intervention   728
       
      possible !
      0