Werte von Shell script in aufrufendes Programm zurückgeben

blueflash

Member of Honour
Hallo,

gibt es einen eleganten Weg, Rückgabewerte von Shell Skripten (und zwar Strings) in das aufrufende C-Programm zurückzugeben, ohne StdOut/Err zu parsen?
Ich bräuchte z.B. einen Weg, dem aufrufenden Prozess ins Environment zu schreiben, oder etwas in der Art, gibt es da was?
 

xbeduine

Member
Shell-scripte können keine Strings zurückgeben (ausser über parsen von StdOut/Err). Hab mich da auch mal zu tode gesucht ;)

Du könntest aber das die gewünschte Ausgabe des Scripts in ein File umleiten und das in deinem C-Programm weiterverarbeiten.

mad
 
S

sw33tlull4by

Guest
Gibt es.
Dafuer kannst du den exitstatus misbrauchen.

falls du also statische Strings zurueckgeben moechtest muesstest du das in Dezimal schreiben und anschliessend Casten, bei dynamischen Strings wuerde ich das an eine Hilfsfunktion uebergeben z.b einem kleinen C-Programm und dann zurueckgeben.
mfg

sw33t

//edit
BTW:
Wiso willst du ein skript laufen lassen?
Du kannst auch Systemcalls benutzen.
 

Keci

New member
In den Shellscripts übergibst du einfach den String über ein Kommandoparameter in das C/C++ Programm und fertig :)
 

Lesco

New member
Original von Keci
In den Shellscripts übergibst du einfach den String über ein Kommandoparameter in das C/C++ Programm und fertig :)

So wie ich das verstehe, will er die Skripte im C-Programm aufrufen, nicht umgekehrt.
Aber der eleganteste Weg dürfte es wirklich sein, stdout und stderr umzuleiten.(Das könnte man einfach in eine Funktion packen und diese dann immer aufrufen, wäre also nur ein einmaliger Aufwand. In eine Datei zu schreiben bringt wieder andere Sicherheitsprobleme mit sich.)
 

blueflash

Member of Honour
Das Problem hat sich mittlerweile erledigt. Es war in dem Programm doch ohne größere Verrenkungen möglich, stdout zu lesen. Ich hatte da erst schlimmeres befürchtet.

danke an alle,

blueflash
 
Oben