"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

int system(const char*)

Maschi 07.03.2004 - 19:25 908 8
Posts

Maschi

Big d00d
Registered: Feb 2003
Location: Wien
Posts: 133
Grüß euch,

Ich habe ein kleines Problem in C++.

Ich möchte von meinem Programm aus ein Windows Programm ausführen. Dies ist ja nicht so schwer. Nehmen wir als Beispiel
system("echo bla");
Jetzt ist die Ausgabe auf der Konsole "bla". Das eigentliche Problem ist jetzt wie kann ich bla catchen und es wieder in meinem Programm weiterverwenden.

Hat irgendwer eine Idee oder geht das gar nicht?

mfg
Maschi

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
machs vielleicht über ein temporäres file

Maschi

Big d00d
Registered: Feb 2003
Location: Wien
Posts: 133
na so gehts net wie ich will, da das programm das ich aufrufen will keine zeilenumbrüche macht...

mfg
Maschi

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Vielleicht hilft dir das hier als Beispiel:

http://www.codeproject.com/dialog/quickwin.asp

Eat my shorts

Little Overclocker
Avatar
Registered: Dec 2002
Location: Österreich
Posts: 56
das funktioniert normalerweise über pipes, ich kenn das allerdings nur aus der Unix Systemprogrammierung net aber unter Windows, dadurch dass aber windows eh die Posix Norm umgesetzt hat glaub ich net dass des dort so viel anders geht

Code:
#include <stdio.h>

main()
{
	int pd[2],pid;
	FILE *fp;
	int i;
	char zeile[256];

	if(pipe(pd)==-1)
	{
		perror("t_pipe");
		exit(1);
	}
	switch(pid=fork())
	{
		case -1: perror("t_pipe");
			exit(1);
		case 0: //Sohnprozess
			//Standardausgabe auf die Pipe legen
			close(1);
			if(dup(pd[1])!=1)
			{
				perror("t_pipe");
				exit(1);
			}
			close(pd[1]);
			System("ls -ltr");
			perror("t_pipe");
			exit(1);
		default: //Vaterprozess
			fd=fdopen(pd[0],"r");
			while(fgets(zeile,255,fp)){
				fputs(zeile,stdout);
			}
			exit(0);
	}
}

mfg
bernhard

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
um welches programm handelt es sich, das du ausführen möchtest?

Maschi

Big d00d
Registered: Feb 2003
Location: Wien
Posts: 133
Um ein Tool das mir ein Wort auf unicode und Base64 konvertiert

mfg
Maschi

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
schon ueberlegt diese komplette anforderung nicht an ein externes programm zu uebergeben sondern einfach nachzucoden bzw was fertiges verwenden?

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
unicode is leicht.. da gibts genügend funktionen

base64

http://www.ietf.org/rfc/rfc2045.txt
hier ist ein vb beispiel: http://www.pstruh.cz/tips/detpg_Base64Encode.htm

in der ATL gibts auch eine encode und decodefunktion, aber ich nehm an damit wirst du nichts anfangen können.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz