Recoder ls (linux) en c

Fermé
bibounder - 5 déc. 2014 à 13:08
Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 24 déc. 2014 à 14:07
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

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
5 déc. 2014 à 13:30
Bonjour,

Il faudrait voir exactement ce à quoi tu as le droit...
Fonction système (genre read()) ? Quelques fonctions standard (genre fread()) ?
Etc.
Cdlt,
0
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
5 déc. 2014 à 18:20
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
5 déc. 2014 à 18:35
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
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
5 déc. 2014 à 19:17
Pas faut :-)
mais bon si c'est juste printf et compagnie à ne pas utilise le reste est autoriser
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
5 déc. 2014 à 22:19
Tout dépend de ce que comprend "compagnie"... Je pense notamment aux fonctions système
0
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
5 déc. 2014 à 23:25
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
6 déc. 2014 à 00:28
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
Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 724
24 déc. 2014 à 11:13
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
Thomato87 Messages postés 107 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 8 juin 2015 16
24 déc. 2014 à 11:46
A Epitech on a déjà rendu ce sujet, je pense qu'il est plutôt de 42 ;)
0
Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 724
24 déc. 2014 à 14:06
possible !
0