Christoph Zurniedenc: zeichen

Beitrag lesen

Hi,

ich will einen batchbefehl über c durchführen und rufe dazu,

(Du meinst C?)

system (varname);

sytem(2) ist aus verschiedenen Gründen problematisch. Da Du Anfänger in C zu sein scheinst würde ich Dir vorschlagen Dein Vorhaben genauer zu beschreiben. Insbesondere wenn root darin verwickelt sein könnte oder es auf Windows läuft.

Es gibt dafür aba eine Möglichkeit und zwar man setzt den Pfad unter " " aba ich will den varname nicht verändern..

Hat wer von euch a idee was ich da machn könnt?..

Klar. Wie romy schon so trefflich anmerkte: Argument zusammenbasteln. Wenn Du nicht mehr als nur Anführungsstriche benötigst und die Variable mit dem Pfad nicht selber verändern möchtest brauchst Du eine temporäre Variable. Diese muß mindestens 3 Zeichen (",",\0) mehr fassen können (malloc(3)) als der Pfad lang (strlen(3)) ist. Da hinein packst Du '"' + $PATH + '"' + '\0' (strncat(3)). Das Ergebnis packst Du dann in system(3).

Solltest Du höhere Weihen in C anstreben würde ich aber doch dringend das Studium der exec(3) Familie empfehlen.

so short

Christoph Zurnieden