Bonjour.
J'aimerai savoir comment faire pour envoyer des données dans un processus créé, et comment récupérer sa sortie (sans arrêter le processus j'entends).
Il s'agit d'une application client/serveur, côté client, il demande la création d'un processus, ie: CreateProcess bc par exemple, le serveur doit alors créer le processus de son côté et renvoyer "OK pid" (ou identifiant quoi). A partir de là, le client peut envoyer des données à son processus "SendInput <identifiant du proc> les données", et quand il désirera voir la sortie standard du proc "GetOutput <identifiant>" qui affichera côté client toute la sortie déjà effectuée par le processus (le processus étant toujours en exécution).
La majeure partie a été réalisé, mais là, je bloque sur la gestion de l'entrée/sortie standard du processus. (il faudra d'ailleurs aussi que je puisse récup' le code de retour du processus si le client le désire).
J'ai essayé de forker + exec à la main, de dup[2], mais sans succès. Après, j'ai vu la fonction pipe(), mais avec le fork et autre dup, je m'emmèlais un peu, enfin, j'ai vu popen() qui a l'air sympathique (réalise tout) mais je me demande si elle convient pour ce que je veux faire. (comme un popen ne peut être que "r" ou "w" exclusivement, je devrais en créer alors deux, un "r" pour GetOutput, un "w" pour SendInput, mais je n'ai qu'un processus à exécuter :|)
Quelqu'un aurait une idée générale pour réaliser ceci ?
Merci.
Edit: Je précise que plusieurs processus peuvent être créés (d'où l'id distinct pour chaque).
Message édité par andOceans le 21-11-2004 à 11:58:24