Marc Reichelt: C / C++: Verständnissprobleme system() und varianten davon

Beitrag lesen

Hallo levu,

wenn ich ein externes Programm ausführen möchte, was nutze ich dann? system(), oder das in anderen Foren am Rand erwähnte exec(), bzw. wie genau funktionieren die, kann ich einfach schreiben:
system("prg2.exe /a /b /c");
oder wie geht das?

Laut C++ Referenz der Methode system(): Ja.

Das ".exe" kannst du übrigens weglassen - dann klappt das Programm auch unter Linux, wenn es ein entsprechendes Programm gibt und im PATH zu finden ist.

gibt es vielleicht ein gutes Tutorial, was auf fortgeschrittene Programmierung (Funktionspointer, eingebettetes ASM, Netzwerk, IPC, ...) mit C/C++ eingeht? So die Grundlagen sind mir aus anderen Sprachen bekannt und mit Qt hatte ich auch schon einige Erfahrung, aber jetzt ist QT einfach zu langsam, ich möchte ein Programm schreiben, dass sich selbst in der Algorithmik immer wieder den Bedürfnissen anpasst, was sehr rechenintensiv ist (Primzahlenberechnung mit exakt dem gleichen Algorithmus mit Qt ca. 10 - 20 mal langsamer...)

Zum Tutorial hoffe ich, dass Andere dir hier gute Vorschläge machen können.

Jedoch möchte ich bekräftigen, dass sicher nicht Qt für eine langsame Primzahlenberechnung verantwortlich ist. Das ist zu 99% kein Problem von Qt, sondern rührt sicher daher dass du die Ausgabe der Primzahlenberechnung stetig mit Qt realisierst, statt die Primzahlenberechnung in einen eigenen Thread auszulagern und die Werte dann asynchron durch einen anderen Thread auszulesen.

Wenn du mit fortgeschrittener Programmierung beginnst, sollten Threads (siehe: Threads in Qt 4.4) und Gedanken zur Laufzeit deiner Algorithmen also definitiv dazugehören.

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
DPRINTK("Last time you were disconnected, how about now?");
        linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)