[C/Shell] Stocker stdin d'une cmd shell
Résolu
kaham
Messages postés
180
Date d'inscription
Statut
Membre
Dernière intervention
-
kaham Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
kaham Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me demande si c'est possible de stocker le resultat d'une commande shell dans une variable dans un programme C., sans passer le flux de sortie sur celui d'entrée du programme C. Je m'explique avec un petit exemple :
Voici ce que je ne veux pas faire (en shell)
Voici ce que je veux faire (en langae_c)
Je sais cela ne sert a rien de vouloir stocker le resultat de "ls" dans une var C pour l'afficher ensuite, mais c'est le principe qui m'interresse.
Je me demande si c'est possible de stocker le resultat d'une commande shell dans une variable dans un programme C., sans passer le flux de sortie sur celui d'entrée du programme C. Je m'explique avec un petit exemple :
Voici ce que je ne veux pas faire (en shell)
#gcc -o prog prog.c #ls | ./prog
Voici ce que je veux faire (en langae_c)
int main(){ char chain[200]; chaine = system("ls"); printf("%s", chaine); }
Je sais cela ne sert a rien de vouloir stocker le resultat de "ls" dans une var C pour l'afficher ensuite, mais c'est le principe qui m'interresse.
A voir également:
- [C/Shell] Stocker stdin d'une cmd shell
- Classic shell - Télécharger - Personnalisation
- Cmd - Guide
- Scannow cmd - Guide
- Cmd mac - Guide
- Récupérer clé windows cmd - Guide
3 réponses
La question a été posé pas mal de fois, et il me semble que la réponse est "non".
la seul solution qui puisse être trouvé c'est d'écrire dans un fichier. Soit par indirection
system("ls > tmp");
soit en utilisant popen.
Bonne chance.
la seul solution qui puisse être trouvé c'est d'écrire dans un fichier. Soit par indirection
system("ls > tmp");
soit en utilisant popen.
Bonne chance.