Am 13.12.2014 um 21:08 schrieb Jürgen Hochwald:
Am 13.12.2014 um 20:31 schrieb Manfred Kreisl:
Hallo Jürgen,
....
sprintf(Cmd,"echo \"convert %s_.ppm %s.jpg\" >> test",BaseFileName,BaseFileName); system(Cmd);
Das Problem ist, daß der Aufruf genau 8 mal korrekt gemacht wird (Rückgabe 0), und alle weitere Aufrufe schlagen fehl (Rückgabe -1). Das Wird der Aufruf eigentlich ausgeführt und ist nur der Returnwert falsch oder scheitert der Aufruf komplett. Nein, da wird im Fehlerfall auch nichts aufgerufen. Weder der 'convert' (der eigentlich mit dem system()-Aufruf erfolgen soll), noch das Schreiben in die Textdatei per echo. Es werden die die ersten 8 Aufrufe gemacht, habe also 8 Zeilen in der Datei. Es mußten aber über 100 sein.
....
Ich hab da mal einem anderen Forum folgende Aussage gesehen "Ansonsten gilt: wenn möglich, nie system verwenden, sondern die Sache mit Linux-Systemaufrufen erledigen...", allerdings wurde nicht begründet warum
Ich habe auch mit execl() probiert. Das funktioniert, allerdings nur einmal, da es den laufenden Prozeß (im Erfolgsfall) beendet. So verstehe auch das auch aus der man-Page.
Welche Alternative gäbe es noch zu system() ? Bastelarbeit ist da wohl angesagt, siehe beispielsweise hier: http://stackoverflow.com/questions/3055924/problems-with-system-calls-in-lin...
Gruß Manfred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org