my_cat - C - Programmation
Marsh Posté le 16-11-2012 à 21:04:07
Bonjour !
Les appels système de gestion de fichiers dont vous aurez besoin (je n'en détaille pas le fonctionnement, le nom est suffisamment clair )
* open
* read
* close
Dans votre main, vous bouclez sur les arguments et ouvrez les fichiers correspondants, cela ne devrait, a priori, ne pas poser de difficulté majeure. Pour le reste l'algorithme donné par votre professeur est très clair.
Si vous avez besoin d'autres conseils/indices, postez votre avancement pour lancer la discussion.
PS : Pourquoi parler de la fonction write ?
Marsh Posté le 18-11-2012 à 14:40:33
Salut
Tout est très bien expliqué. C'est quoi exactement que d'afficher un fichier ?
C'est
1) lire un nombre défini d'octets et les stocker dans une zone (dans laquelle on aura préalablement alloué de la mémoire)
2) si la lecture n'a pas réussi, c'est à dire s'il n'y avait plus rien à lire alors sortir de la boucle
3) sinon afficher le contenu de ladite zone à l'écran et revenir en 1
4) ici juste avant de quitter la fonction, libérer la zone allouée
Le main, lui, se chargeant d'ouvrir le fichier pour pouvoir transmettre son descripteur à la fonction puis le refermer à l'issue.
Bien entendu cela nécessite de connaitre les fonctions de manipulation de fichiers. Farian pense à open/read/close (qui sont les fonctions de bas niveau) mais peut-être que ton prof a préféré parler des fonctions de haut niveau qui sont fopen/fread/fclose. Quoi qu'il en soit c'est l'un ou l'autre groupe...
Marsh Posté le 18-11-2012 à 20:58:39
Sve@r a écrit : Farian pense à open/read/close (qui sont les fonctions de bas niveau) mais peut-être que ton prof a préféré parler des fonctions de haut niveau qui sont fopen/fread/fclose. Quoi qu'il en soit c'est l'un ou l'autre groupe... |
L'utilisation de ce groupe de fonctions me paraît évident vu que l'énoncé parle d'un file descriptor
Marsh Posté le 16-11-2012 à 20:50:38
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.