Fonction system("cmd")

Fermé
DRSBMM - 30 nov. 2008 à 11:37
 DRSBMM - 30 nov. 2008 à 13:17
Bonjour,
je suis maint entrain de faire un exercice qui nous demande de :
Écrire un programme shell recevant quatre paramètres dont le premier correspond au
nom d'un utilisateur du système et les trois autres correspondent aux noms de trois fichiers f1, f2 et
f3.
Le programme shell fait appel à une fonction C correspondant à l'exécution
de la commande Shell suivante:
cat f1 f2 f3 | pr | wc lc

le probléme est le suivant :
j'ai utiliser la fonct system("cat argv[1] argv[2] arg[3] | pr | wc -lc")
mais il maffiche un message qui dit que:les fichiers argv[1] argv[2] arg[3] sont inatrouvable ????????
est merci d'avance

5 réponses

Salut !

Normal ! c'est du SHELL !!! pas du C !

En shell, tu doit coder comme si tu était directement en ligne de commande.
Tu n'a pas besoin d'utiliser la fonction SYSTEM ... il suffit d'écrire cat.... sur une ligne !

et pour les arguments, tu ne doits pas utiliser arg[n], mais $1, $2, $3 ... tout simplement !

il y a pleins de cours de shell sur le net :
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html

A+

PS : n'oublie pas de commencer ton script par #!/bin/bash et de rendre le script exécutable chmod a+x script
0
Salut,
Ou en C ca donnerait

system("cat %s %s %s | pr | wc -lc",argv[1], argv[2], argv[3] );

Cdt

Whityzante
0
je vais essai la derniere proposition merci
0
il n' y a aocune resultat.
vous pouvez m'indiquer comment resoudre cet exercice peut etre je ne l'ai pas bien compris.
Le programme fait appel à une fonction C appelée correspondant à l'exécution
de la commande Shell suivante:
cat f1 f2 f3 | pr | wc lc
0
C'est vraiment pas clair !

Tu dois coder en C ? ou en shell ??
Ton programme doit retourner une valeur ?

en shell :

#/bin/bash
cat $1 $2 $3 | pr | wc lc

devrai suffire à afficher le résultat ( c'est à dire le nombre de lignes des 3 fichiers passés en paramêtres)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
la question est la suivant je ne l'ai pas bien compris:
Écrire un programme shell recevant quatre paramètres dont le premier correspond au
nom d'un utilisateur du système et les trois autres correspondent aux noms de trois fichiers f1, f2 et
f3.
Le programme shell fait appel à une fonction C correspondant à l'exécution
de la commande Shell suivante:
cat f1 f2 f3 | pr | wc lc
est ce que vous pouvez me l'expliquer
0