bonjour.
voila j'ai un petit soucie je ne voix pas du tout comment je pourrais daire pour refaire la commande cat ou même tee en language.
est ce que vous pouvez m'aider.
bonne soirée a vous
Version imprimable
bonjour.
voila j'ai un petit soucie je ne voix pas du tout comment je pourrais daire pour refaire la commande cat ou même tee en language.
est ce que vous pouvez m'aider.
bonne soirée a vous
Hors gestion des options, l'idée c'est de boucler sur les arguments (argv) et, pour chacun des fichiers, de faire une boucle du style "while fgets(...) puts(...)"
Si tu n'as pas d'argument, cat lit sur l'entrée standard : il faut alors faire des fgets en utilisant stdin.
Code:
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 #include <stdio.h> #include <stdlib.h> #include <stdio.h> /* cat : concatène des fichiers, version 1 */ int main(int argc, char *argv[]) { FILE *fp; void copierfich(FILE *, FILE *); if (argc == 1) /* pas d'args : copie l'entrée standard */ copierfich(stdin, stdout); else while (--argc > 0) if ((fp = fopen(*++argv, "r")) == NULL) { printf("cat : impossible d'ouvrir %s\n", *argv); return 1; } else { copierfich(fp, stdout); fclose(fp); } return 0; } /* copierfich : copie le fichier fpe dans le fichier fps */ void copierfich(FILE *fpe, FILE *fps) { int c; while ((c = getc(fpe)) != EOF) putc(c, fps); }
Salut.
:tagcode:
Sinon, j'ai pas le temps de tester le code mais s'il marche tu peut le copier l'exécutable dans le répertoire home/TonNom/bin ou le répertoire /usr/bin (pour être accessible à tout utilisateur) pour le faire fonctionner comme une commande ;) .
Je voudrais dire que cat est légèrement plus pointu que ce que l'on pense.
Les balises spécial de couleur ( qui marche avec 'echo' \e[30m; ( un truc du genre ) ) marche aussi avec cat.
Ne vous embêtez pas trop car je suis sur que waldner77 saura s'en débrouiller.
Je ne sais pas si vous avez noté, mais après son "sos" (comment m'y prendre, je suis perduuuuu .... !) et mon début d'esquisse de projet de code de ..., en 4 minutes il a réussi à nous pondre un code d'une trentaine de lignes qui, globalement, tient la route :mouarf:
était-ce un test ?
peut être, peut être pas.
telle est la question? ^^