begin process at 2012 05 29 13:57:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

popen & stdout


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

popen & stdout

mercredi 31 janvier 2007 à 13:52:03 | popen & stdout

dacor

bonjour,
je fais un popen sur stdout :

fclose(stdout);
stdout = popen(sendmail_path, "w")
....
pclose(stdout);

à la fin je voudrai remettre le stdout à sa valeur par défaut(sortie standard) initiale. comment faire ???

merci pour votre aide


mercredi 31 janvier 2007 à 21:59:24 | Re : popen & stdout

acx01b

Réponse acceptée !
salut pourquoi tu fais fclose(stdout) au début ???

voila ce que je viens de tester:

#include <stdio.h>
int main() {
    FILE stdout_save = *(stdout);
    FILE *mon_pointeur_de_fichier = fopen("a.txt","w");
    *(stdout) = *mon_pointeur_de_fichier;
    printf("bonjour voici a.txt");
    fclose(stdout);
    *(stdout) = stdout_save;
    // à la fin de la fonction stdout_save se libère de la mémoire tout seul
}

regarde la définition de la macro stdout pour comprendre:

#define stdin (&_iob[STDIN_FILENO])
#define stdout (&_iob[STDOUT_FILENO])
#define stderr (&_iob[STDERR_FILENO])

on ne peut donc pas changer sa valeur puisque c'est un tableau de FILE et pas un tableau de FILE*
mercredi 31 janvier 2007 à 22:08:53 | Re : popen & stdout

acx01b

re salut

remplace le fclose(stdout); par fflush(stdout);
et rajoute juste après fclose(mon_pointeur_de_fichier);
jeudi 1 février 2007 à 09:59:31 | Re : popen & stdout

dacor

salut,
merci pour ton aide.... mais ça ne marche encore comme je le voudrai
je t'explique le problème que rencontre :
j'ai une fonction qui doit envoyer un mail donc ce que je fait c'est affecter le popen(send_mail) pour pouvoir ecrire mon mail en utilisant les fonction de stdio. Et après je dois retourner une valeur en xml_rpc :
return xmlrpc_build_value(env, "s", "mail envoyé");  l'envoie du mail marche mais la valeur que je retourne et null...


Cette discussion est classée dans : stdout, popen


Répondre à ce message

Sujets en rapport avec ce message

handle et stdout [ par zoreol ] sa yest j'arrive a lancer le creatprocess(il fallait faire un memset).Bon bref en fait now je voudrai recuperer le stdout du handle.C possible? Besoin d'aide sur lex and yacc [ par jlgrau ] Bonjour,J'utilise Lex and Yacc depuis peu. J'ai fait un petit programme pour parser un fichier texte tout simple. Le parser ne fonctionne pas correcte Rediriger StdOut ? [ par kod32 ] Salut,je souhaiterais traiter l'affichage d'un prog en console (win sous visual), j'ai vu qu'on pouvait rediriger un flux stadard avec SetStdHandle ve stdout et ntvdm [ par yAAm ] Bonjour, j'ai un petit noeud à demeler : Pour recuperer la sortie std d'un executable, on peut utiliser CreateProcess ainsi qu'une structure startupi Deux handles pour stdout dans un process ? [ par chuckboy ] BonjourJ'explique mon probleme, je lance une thread et je veut récupere ce qu'elle me sort à l'écran. Donc dans mon CreateProcess je lui spécifie un h Descripteur de fichier.. dup2 [ par julxerab ] Salut..Je code un petit serveur censé executer des commandes systemes a distance et renvoyer le resultat au client. Mon problemeest que la fonction du utilisation de popen [ par dacor ] bonjour;je veux faire : stdout = popen(sendmail_path, "w") en c++;est ce que la fonction est la meme qu'en c, et il faut faire quoi comme include dans redirection du stdout en C++ [ par fpd ] Bonjour,comment rediriger les sorties vers le stdout du type "cout vers une autre destination (soit "null", soit un fichier, soit rediriger vers la co SNIFFER AIDE!!! [ par adnmaster666 ] Bonjour voici le code pour réaliser un sniffer mais le prob c'est qu'il ne fournit que l'IP, et le TCP, il me faudrait aussi l'UDP, l'ARM et l'étherne createnamedpipe et stdout [ par albanovisch ] bonjour je souhaire creer un pipe entre mon programme et un autre executable, mon probleme est que je ne sais pas comment rediriger mes flux stdout st


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales