Hallo.
Ich möchte wissen wenn ich in der bash eine variable mit Inhalt fülle wie kann ich den Variableninhalt auf ein gesondertes im Hintergrund laufendes c++ Programm übergeben?
Variblen übergeben.
Re: Variblen übergeben.
rot: Moderator wanne spricht, default: User wanne spricht.
- DEBIANUNDANDREAS
- Beiträge: 1304
- Registriert: 01.06.2013 10:37:46
Re: Variblen übergeben.
Ich dachte eher ihr postet mir hier oder per http://dpaste.com/ ein Beispiel .
Re: Variblen übergeben.
Das ist nicht so einfach. Interprozess-Kommunikation ist sowieso nicht so einfach, wie Du auch dem von „wanne“ verlinkten Wikipedia-Artikel entnehmen kannst.
Eventuell könntest Du die Daten in eine Datei schreiben. Dann kann Dein C++ Programm regelmäßig nachgucken, ob die Datei existiert oder sich der Inhalt geändert hat und entsprechend reagieren.
Falls das C++ Programm auch von Dir stammt , würde Dir raten, mal Kapitel 7 (Prozesse), 8 (Signale) und 9 (IPC) zur Linux-Programmierung durchzulesen.
Hier geht's los: http://openbook.galileo-press.de/linux_ ... 07-000.htm
Eventuell könntest Du die Daten in eine Datei schreiben. Dann kann Dein C++ Programm regelmäßig nachgucken, ob die Datei existiert oder sich der Inhalt geändert hat und entsprechend reagieren.
Falls das C++ Programm auch von Dir stammt , würde Dir raten, mal Kapitel 7 (Prozesse), 8 (Signale) und 9 (IPC) zur Linux-Programmierung durchzulesen.
Hier geht's los: http://openbook.galileo-press.de/linux_ ... 07-000.htm
Re: Variblen übergeben.
Und ich habe mir gedacht dass wir nicht deine Programmierer sind.
Aber hier doch denn shell Teil, wie man das typischerweise macht:
Dein cpp Programm braucht dann eine signalhandler Routine für USR1, die dann die Datei deren Pfad in arg[1] liegt ließt.
Das geht auch eleganter, aber das ist so der primitivste und platformunabhängigste Weg, wie sowas geht.
Hier die mit abstand dümste Methode, wie man sowas machen kann (Zerlegt Wert in seine Bits und sendet dann für 0 USR1 und für 1 USR2): ftp://wanne.t-8ch.de/UNI/OS_Praktikum/7signals
(Gepostet, damit du siehst, wie das mit Signalen in C funktioniert.)
Aber hier doch denn shell Teil, wie man das typischerweise macht:
Code: Alles auswählen
tmpfile=$(mktemp)
cppprog $tmpfile &
pid=$!
variable="inthalt"
echo "variable=$variable" > $tmpfile
kill -s USR1 $pid
Das geht auch eleganter, aber das ist so der primitivste und platformunabhängigste Weg, wie sowas geht.
Hier die mit abstand dümste Methode, wie man sowas machen kann (Zerlegt Wert in seine Bits und sendet dann für 0 USR1 und für 1 USR2): ftp://wanne.t-8ch.de/UNI/OS_Praktikum/7signals
(Gepostet, damit du siehst, wie das mit Signalen in C funktioniert.)
rot: Moderator wanne spricht, default: User wanne spricht.