Konsolenbefehl mit "system()" wird als "command not found" angezeigt



  • Hallo,

    mein Problem ist, dass ich den Befehl "setenv" ohne Probleme in der Konsole ausführen kann, während der Befehl, wenn ich ihn aus einem C++ Programm starten möchte ( mit system("setenv") ) als "command not found" verworfen wird. Andere Befehle, wie z.B. "gedit" funktionieren.

    Kann sich hier jemand denken, woran das liegen kann?

    Grüße

    Börni



  • Vermutlich ist setenv ein eingebautes Kommando deiner Shell, kein eigenständiges Programm.



  • bash hat keinen setenv Befehl, das hört sich nach csh oder tcsh. Es könnte sein, dass deine login shell mit tcsh unterwegs ist, system aber /bin/bash verwendet. Enviroment variablen setzt man außerden nicht mit system (womit nur der geforkte Prozess die Änderung bekommt, der Parent == aufrufer von system eben nicht), sondern mit der in Posix definierten Funktion man: setenv(3).


Anmelden zum Antworten