int system(const char*)

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/int_systemconst_char_109056/page_1 - zur Vollversion wechseln!


Maschi schrieb am 07.03.2004 um 19:25

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 schrieb am 07.03.2004 um 20:31

machs vielleicht über ein temporäres file


Maschi schrieb am 07.03.2004 um 20:32

na so gehts net wie ich will, da das programm das ich aufrufen will keine zeilenumbrüche macht...

mfg
Maschi


that schrieb am 07.03.2004 um 22:56

Vielleicht hilft dir das hier als Beispiel:

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


Eat my shorts schrieb am 07.03.2004 um 23:36

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 schrieb am 12.03.2004 um 14:50

um welches programm handelt es sich, das du ausführen möchtest?


Maschi schrieb am 12.03.2004 um 15:40

Um ein Tool das mir ein Wort auf unicode und Base64 konvertiert

mfg
Maschi


funka schrieb am 12.03.2004 um 16:16

schon ueberlegt diese komplette anforderung nicht an ein externes programm zu uebergeben sondern einfach nachzucoden bzw was fertiges verwenden?


mat schrieb am 12.03.2004 um 18:08

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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026