garder la main sur un process lance

garder la main sur un process lance - C - Programmation

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.

Reply

Marsh Posté le 30-06-2008 à 12:26:27   

Reply

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 ?


Message édité par Elmoricq le 30-06-2008 à 12:30:15
Reply

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.

Reply

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.

Reply

Marsh Posté le 30-06-2008 à 13:55:51    

yartempion a écrit :

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.


 
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.

Reply

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?

Reply

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

Reply

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.

Reply

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.


Message édité par stzup7 le 01-07-2008 à 20:54:09
Reply

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.

Reply

Marsh Posté le 01-07-2008 à 22:04:57   

Reply

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+

Reply

Marsh Posté le 03-07-2008 à 13:52:31    

J'ai toujours pas compris ce que tu voulais faire, mais c'est pas grave.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed