[C] Probleme affichage programme entre quotes

Fermé
Corentink - 30 déc. 2007 à 16:00
 Corentink - 30 déc. 2007 à 20:27
Bonjour

Voila mon soucis. J'ai un programme a qui j'envoie une liste d'argument et je peux choisir celui ou ceux que je veux et il ou ils sont renvoyés au shell (unix). Pour l'instant pas de problèmes tout fonctione parfaitement mes arguments sont bien renvoyés au terminal. Mais voila, j'aimerai pouvoir l'utiliser par exemple avec des commandes unix telles que cat ou more de la maniere suivante : cat `./select *.c` pour pouvoir sélectionner les fichiers que je veux afficher. Hors quand je lance cette commande, mon programme s'exécute bien mais je ne peux pas voir ce qu' il affiche...donc effectivement je peux sélectionner un argument et le renvoyer au shell mais a l'aveuglette... y a t il un moyen de rendre visible l' exécution du programme lance entre quotes (``) ? J' ai chercher toutes les requêtes possible pour changer mon termios mais aucune ne semble convenir...

Quelqu'un a une idée ??

Merci pour votre aide.
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
30 déc. 2007 à 17:22
Salut,

je ne comprends pas exactement se que tu veux

les fichiers *.c sont des fichiers code source C
pour les afficher tu n'as qu'à taper
cat ./sources.c
Voici un exemple, d'après ce que j'ai compris que tu veux
lami20j@debserv:~/trash$ cat ccm.c
#include <stdio.h>

int main (int argc, char **argv)
{
  int i;
  for(i=1;i<argc;++i)
          printf("arguments : %s\n",argv[i]);
  return 0;
}
lami20j@debserv:~/trash$ ./a.out $(ls -1 *.h)
arguments : arbre.h
arguments : ensemble_function.h
arguments : ensemble.h
arguments : individu.h
0
[quotemsg=1664108,2,14993]Pas compris ce que tu veux faire.

En attendant je déplace ton topic dans la bonne catégorie.[/quotemsg]

Desole, je m' exprime mal... J' ai developpe un programme qui me permet de choisir entre plusieurs arguments de ma liste. Explication :

Je rentre en arguments de mon programment : ./mon_program arg1 arg2 arg3 arg4

Mon programme m' affiche ceci :

arg1
[u]arg2[/u]
arg3
arg4

Le curseur (texte souligne) passe dargument en argument suivant que j appuie sur les fleches du haut ou du bas. Lorsque j' ai fait mon choix j' appuie sur la touche entree et l argument est renvoyer au shell, c' est a dire il est imprimer sur le terminal.

Hors voila comme je l' ai dit j' aimerai que ce programme soit utile et me permette de faire un SET (unix) par exemple.
set VAR = `./mon_program choix1 choix2`.

ou alors avec cat exemple : cat `./mon_program fichier1 fichier2`.

Je choisis l'argument que je veux et il est renvoyer au shell donc si je choisi fichier1 : le shell interpretra la commande cat fichier1.

Mon probleme est le suivant : lorsqu' on lance un programme ou commande entre quotes (``) le programme ou commande est execute mais rien n' est affiche sur le terminal.

Donc dans mon cas c' est un gros probleme puisque j' aimerais voir la liste des arguments pour pouvoir en choisir un.

Il existe beaucoup de flags en C permettant de modifier le comportement d' un terminal mais je n' en trouve aucun qui me permette d' afficher ce qui resulte de mon programme quand je le lance entre ses quotes.

Je suis plus clair maintenant ?
0