J'aimerai recuperer grace a un programme en C++ les données affichées, sur la console Linux mais je ne sais pas comment faire.....
Si quelqu'un pouvais m'aider
Si tu donnais un peu plus de précisions, on pourrait peut-être t'aider d'avantages. Qu'est-ce que tu cherches à faire, lances-tu les programmes toi même ?
Alors en fait j'ai fait un programma qui fais un fils. Ce fils lance un
programme qui n'est pas de moi et qui affiche beaucoup de données.
J'aimerai récuperer tous ces données pour pouvoir les traiter mais je
ne sais pas comment faire car avec un pipe, je n'arrive qu'a afficher
qu'une partie du résultat
C'est pour cela que je cherche quelque chose permettant de récuperer les affichages de la console.....
Dans ton pipe, il faudrait peut etre que tu redirige la sortie stdout et stderr, car ces 2 sorties peuvent afficher des informations dans la console
++
Les pipes (ou les sockets) fonctionnent très bien pour faire ce que tu demandes. A mon avis, il doit y avoir quelques erreurs dans ton code. A titre d'information, voilà un bout de code repris d'un projet qui fait ce que tu demandes. Je croisi que les noms de variables et de fonctions sont assez explicites. Le troisièmem argument de la fonction est un pointeur vers un entier dans lequel sera stocké le descripteur du socket à utiliser pour lire l'output du programme. Par exemple:
int output_desc;
io_popen(, , &output_desc);
read(output_desc, ...
int
io_popen(char *argv[], char *envp[], int *srv_child)
{
int sockpair[2];
int child_srv;