My_cat

Fermé
charlescal Messages postés 6 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 23 octobre 2014 - 16 nov. 2012 à 20:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 16 nov. 2012 à 22:18
Bonjour,

Je chercher à créer ma propre fonction my_cat dans le but d'ouvrir 1 ou plusieurs fichiers passés en ligne de commande.
C'est un exercice de programmation de base, mais je n'y arrive pas. Je vous donne des pistes données par notre prof.

" void my_cat(int fd): Cette fonction prend en parametre un file descriptor, alloue de la memoire(malloc), lis ce FD dans la memoire, affiche ce qu'elle a lue et free la memoire. (Vu que read ne peut lire qu'un nombre limité de caractere, le couple read / write est dans un boucle while)

main: Cette fonction ouvre le fichier, appelle my_cat avec le FD du fichier ouvert puis close le fichier.
Dans le cas ou il n'y a pas d'arguments passé en parametre, le main appelle my_cat avec le FD de l'entrée standard."

Pouvez vous me donnez des pistes, ou des solutions...merci beaucoup.

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
16 nov. 2012 à 22:18
Votre prof vous conseille d'utiliser read/write pour un exercice de programmation de base ???
Décidément les profs... Vaut mieux utiliser fread/fwrite qui sont portables. Ou alors fgets / fprintf

M'enfin si telle est l'exercice.
Dans le main(), tu utilises open (normalement on utilise fopen) pour ouvrir le fichier. Cela t'enverra un int que tu devras envoyer en paramètre de ta fonction my_cat(int).
Ensuite, tu alloues un buffer avec malloc, et tu utilises read pour lire le fichier en utilisant le File Descriptor et tu l'affiches à l'écran avec fwrite.

Poste ce que tu peux, au moins le début, dis-nous ce qui te bloque et on t'aidera davantage.

Cdlt,
0