Zum Inhalt springen

system(), exec() usw.


Empfohlene Beiträge

Geschrieben

Hi,

die Forumsuche bietet ja sehr viel über das Thema.

system() ist schlecht, steht zumindest überall.

Aber mir fehlen jetzt die Alternativen.

Ich möchte z.B. eine Datei mit zip komprimieren. (Win und linux)

Oder speziell auf Linux jetzt ein .tar.gz macht

Was für einen Befehl verwende ich den jetzt?

Ich möchte möglichst plattformunabhängigkeit bleiben

und die Ausgabe der aufgerufenen Programme lesen.

Kann hier jemand etwas Licht ins Dunkel bringen??

Danke!

Gruß Scratch

Geschrieben

Das hatte ich schon gelesen (Irgendwo in der Forumsuche gefunden).

Das Problem ist wohl das "platformunabhängig bleiben".

Dann mal anders wie kann ich den die Ausgabe von zB exec überwachen?

Gruß Scratch

Geschrieben

Wie kann ich reagieren wenn ein Fehler Auftritt in dem externen Programm ...

Ich möchte zum Beispiel eine tar einer Datei machen und die Datei wird vorher gelöscht oder es wurden falsche Parameter übergeben, die Platte ist voll und solche Geschichten.

Mein Programm sollte dann reagieren können.

Im Prinzip die Rückgabe des Programms soll in meinem Programm sein ;-)

Geschrieben

popen ... war die Lösung.

(Fast) plattformunabhängig und die Ausgabe des Programms kann in das eigene umgeleitet werden.

string execute(string strCommand)

{

	iSize = 255;


	FILE *myPipe;

	char cBuffer[iSize];


	string strData;


#ifdef _WIN32

	myPipe = _popen(strCommand.c_str(),"rt");

#else

	myPipe = popen(strCommand.c_str(),"r");

#endif


	if(myPipe != NULL)

	{

		strData = "";

		while(fgets(cBuffer,iSize,myPipe) != NULL)

		{

			strData = strData + cBuffer;

		}


#ifdef _WIN32

		_pclose(myPipe);

#else

		pclose(myPipe);

#endif

	}

	else

	{

		return "";

	}


	return strData;

}

Danke an alle, besonders an Klotzkopp!!

Gruß Scratch

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...