Passage d'informations d'un programme à un autre
Résolu
fabinou87
-
fabinou87 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
fabinou87 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Codant pour un projet pour mes études, je rencontre une petite difficulté:
Je possède deux programmes, disons programme1 et programme2.
Dans le programme1, je possède 9 chaînes de 9 caractères sous la forme chaine[i][j] (chaine[9][9]).
i représente une des chaînes, et l'ensemble j l'ensemble des caractères composant la chaîne i.
Le programme2 quand à lui pour le moment, reçoit en paramètre une chaîne de 9 caractère et après traitement de la chaîne, m'affiche un certains nombre (inconnu) de chaîne de 9 caractères crépondant à la chaîne que je lui ai fourni.
Ce que je veux faire est dans l'idée ( et seulement dans l'idée ) simple : Je veux pour chaque chaîne du programme1, appeler le programme2 et récupérer toutes les possibilités qui seront générées.
J'ai essayé, notamment avec des forks en utilisant system() et en jouant sur les paramètres du main du programme2, mais je dois avouer que là je ne m'en sors pas et ne vois vraiment pas comment faire.
Si quelqu'un pouvait m'aider, je lui serais très reconnaissant.
Merci par avance !
Codant pour un projet pour mes études, je rencontre une petite difficulté:
Je possède deux programmes, disons programme1 et programme2.
Dans le programme1, je possède 9 chaînes de 9 caractères sous la forme chaine[i][j] (chaine[9][9]).
i représente une des chaînes, et l'ensemble j l'ensemble des caractères composant la chaîne i.
Le programme2 quand à lui pour le moment, reçoit en paramètre une chaîne de 9 caractère et après traitement de la chaîne, m'affiche un certains nombre (inconnu) de chaîne de 9 caractères crépondant à la chaîne que je lui ai fourni.
Ce que je veux faire est dans l'idée ( et seulement dans l'idée ) simple : Je veux pour chaque chaîne du programme1, appeler le programme2 et récupérer toutes les possibilités qui seront générées.
J'ai essayé, notamment avec des forks en utilisant system() et en jouant sur les paramètres du main du programme2, mais je dois avouer que là je ne m'en sors pas et ne vois vraiment pas comment faire.
Si quelqu'un pouvait m'aider, je lui serais très reconnaissant.
Merci par avance !
A voir également:
- Passage d'informations d'un programme à un autre
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Entrer les informations d'identification reseau - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Passage qwerty azerty - Guide
- Mettre en veille un programme - Guide
5 réponses
J'ai l'impression que tu n'as pas bien saisi le fonctionnement de fork. A mon avis, la famille exec*() sera plus utilise dans ton cas.
Pourrais-tu montrer ton code ? Ce sera plus simple pour t'aider.
Pourrais-tu montrer ton code ? Ce sera plus simple pour t'aider.
Bonjour Fiddy, et merci de ta réponse =)
Oh si si j'ai bien compris, j'essayais juste de traiter plusieurs chaines du programme1 en parallèle pour gagner sur le temps d'exécution.
En revanche, j'ai un petit soucis pour intégrer le code dans ce message. Pour ne pas perdre de temps, je t'ai envoyé celui-ci par mp.
Oh si si j'ai bien compris, j'essayais juste de traiter plusieurs chaines du programme1 en parallèle pour gagner sur le temps d'exécution.
En revanche, j'ai un petit soucis pour intégrer le code dans ce message. Pour ne pas perdre de temps, je t'ai envoyé celui-ci par mp.
J'ai vu une fonction system() -> utilise plutôt les familles exec() ou popen().
Sinon, souhaites-tu vraiment avoir deux programmes indépendants ? Et à partir de l'un appeler l'autre ?
Pourquoi ne pas pas mettre un .c supplémentaire dans ton projet ? Et d'appeler ses fonctions directement ? Ou sinon, pourquoi ne pas faire une bibliothèque (genre dll) qui contiendrait le code ?
Si tu souhaites vraiment appeler un programme indépendamment, tu peux utiliser la famille exec() ou popen().
Sinon, souhaites-tu vraiment avoir deux programmes indépendants ? Et à partir de l'un appeler l'autre ?
Pourquoi ne pas pas mettre un .c supplémentaire dans ton projet ? Et d'appeler ses fonctions directement ? Ou sinon, pourquoi ne pas faire une bibliothèque (genre dll) qui contiendrait le code ?
Si tu souhaites vraiment appeler un programme indépendamment, tu peux utiliser la famille exec() ou popen().
Mais oui !!!
Effectivement, en créant un .h du programme2 et en l'incluant dans programme1, tout est beaucoup plus simple !
Je pourrais l'appeler facilement en mettant les paramètres que je souhaite et en utilisant des fork().
excellente idée, merci beaucoup !
Effectivement, en créant un .h du programme2 et en l'incluant dans programme1, tout est beaucoup plus simple !
Je pourrais l'appeler facilement en mettant les paramètres que je souhaite et en utilisant des fork().
excellente idée, merci beaucoup !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et bien en fait, dans programme1 le tableau[9][9] possède donc 9 chaînes de caractères.
tableau[4][3] représente par exemple le 4ème caractère de la 5ème chaîne.
Pour chacune de ces chaînes, je veux appeler programme2, qui va lui générer un certains nombre de chaînes de 9 caractères en réponse.
Je voulais utiliser des fork pour traiter les 9 chaines du programme1 en même temps, appeler programme2 9 fois en parallèle donc.
Seul soucis, lors de l'apelle, ex :
//programme1:
int main
{
...
programme2(tab[4]);
}
Dans ce cas, je ne passe pas au programme2 seulement la 5ème chaine, mais aussi la 6ème, la septième etc jusqu'à la 9ème à la suite.
tableau[4][3] représente par exemple le 4ème caractère de la 5ème chaîne.
Pour chacune de ces chaînes, je veux appeler programme2, qui va lui générer un certains nombre de chaînes de 9 caractères en réponse.
Je voulais utiliser des fork pour traiter les 9 chaines du programme1 en même temps, appeler programme2 9 fois en parallèle donc.
Seul soucis, lors de l'apelle, ex :
//programme1:
int main
{
...
programme2(tab[4]);
}
Dans ce cas, je ne passe pas au programme2 seulement la 5ème chaine, mais aussi la 6ème, la septième etc jusqu'à la 9ème à la suite.
A vrai dire, je ne connais pas du tout encore. ^^
Je suis étudiant et je n'ai encore pas vu ceci. L'utilisation de fork m'est d'ailleurs demandée.
Tu aurais une idée pour récupérer la chaine de mon tab sans récupérer toutes les autres derrière comme expliqué plus haut ? Je viens d'essayer pleins de trucs. Soit je récupère toute la fin soit j'ai des problèmes de typages.
Je suis étudiant et je n'ai encore pas vu ceci. L'utilisation de fork m'est d'ailleurs demandée.
Tu aurais une idée pour récupérer la chaine de mon tab sans récupérer toutes les autres derrière comme expliqué plus haut ? Je viens d'essayer pleins de trucs. Soit je récupère toute la fin soit j'ai des problèmes de typages.