garder la main sur un process lance - C - Programmation
Marsh Posté le 30-06-2008 à 12:29:43
Qu'appelles-tu "garder la main", je n'ai pas bien compris ton post. T'es en C et tu veux lancer une commande et continuer ton programme malgré tout ?
Marsh Posté le 30-06-2008 à 12:44:46
Par exemple je veux lancer un com avec un routeur avec ssh.
Si je lance avec system() je n'ai pas la main sur le programme que je lance si je tape une commande ele sera d'abor interprétée par le shell avant d'etre interprétée par le routeur.
Marsh Posté le 30-06-2008 à 13:11:27
Respire un grand coup et explique mieux que ça, en français, avec de la ponctuation, et en gardant à l'esprit qu'on ne lit pas dans tes pensées.
Marsh Posté le 30-06-2008 à 13:55:51
yartempion a écrit : Par exemple je veux lancer un com avec un routeur avec ssh. |
Ah oui mais non. Si tu lances un shell dans ton programme, JAMAIS tu ne pourrais récupérer la commande dans ton programme. C'est le shell qui va l'interpréter.
Marsh Posté le 01-07-2008 à 14:30:33
Resalut,
iIl n'existe aucun moyen de lancer un parocess et de lui rediriger son entrée ou sortie de flux sur le process qui l'a lancé pour lui envoyer des données?
Marsh Posté le 01-07-2008 à 20:04:33
oui c'est possible
tu dois créer un pipe dans lequel le programme appelé ira lire
Marsh Posté le 01-07-2008 à 20:24:51
Tu peux ouvrir un pipe avec popen().
Par contre, le flux d'un pipe est unidirectionnel : soit tu lis à partir de la sortie d'un processus, soit tu écris dans l'entrée standard du processus. Tu ne peux pas faire les deux en même temps.
Marsh Posté le 01-07-2008 à 20:52:25
personnellement j'aurai utilisé pipe(), n'ayant jamais utilisé popen() auparavant.
fais selon tes besoins
EDIT : popen forke et crée le pipe lui même, il est en effet plus simple à utiliser.
Marsh Posté le 01-07-2008 à 22:04:57
Par contre popen c'est POSIX.2, alors que pipe c'est POSIX.1.
Selon sa plateforme, il n'aura peut-être que pipe() à disposition.
Marsh Posté le 02-07-2008 à 10:42:54
Salut,
Merci a vous je vais me lancer dans l'etude approfondis des tubes et faire des tests et je vous recontacte pour le résultat des courses. A+
Marsh Posté le 03-07-2008 à 13:52:31
J'ai toujours pas compris ce que tu voulais faire, mais c'est pas grave.
Marsh Posté le 30-06-2008 à 12:26:27
Bonjour,
Je cherche a garder la main sur un programme que je lance avec la commande systeme ou exec ou autre.
Par exemple sous unix il existe un client ssh je voudrai le lancer mais garder la main sur ce process.
Comment faire.