Autor Thema: Frage zu einem Programm-Aufruf ???  (Gelesen 2596 mal)

JanD

  • Gast
Frage zu einem Programm-Aufruf ???
« am: 29. September 2009, 13:25:53 »
Moin

solaris 10 - xy Agentensoftware Software installiert in einem /xy/bin Verzeichnis

in /xy/bin ist ein executive
kann ich starten mit /xy/bin/executive oder
wenn ich im /xy/bin stehe mit executive (weil ein . in PATH steht) oder
wenn ich im /xy/bin stehe mit ./executive

was ist genau der unterschied zwischen  ./executive  und  executive

Hintergrund:
starte ich Programm mit  executive - gibt es ein Fehler (Lib nicht gefunden)
starte ich mit ./executive  - läuft das Programm fehlerfrei

hat da einer eine Ideeß

sonnenblen.de - Das unabhängige Sun User Forum

Frage zu einem Programm-Aufruf ???
« am: 29. September 2009, 13:25:53 »

claus

  • Gast
Re: Frage zu einem Programm-Aufruf ???
« Antwort #1 am: 29. September 2009, 22:13:59 »
Hallo,

starte Anwendungen einfach immer mit ./, dann solltest Du nie ein Problem haben. Den Unterschied hab ich mir nie gemerkt.

Beste Grüsse,

Claus

Offline Padde

  • Sobl Bachelor
  • ***
  • Beiträge: 135
  • Hier könnte Ihre Werbung stehen!
Re: Frage zu einem Programm-Aufruf ???
« Antwort #2 am: 30. September 2009, 00:35:01 »
in /xy/bin ist ein executive

Das glaube ich allerdings nicht...  ;)

was ist genau der unterschied zwischen  ./executive  und  executive

"./executive" startet die im aktuellen Verzeichnis befindliche Führungskraft. Bei "executive" dagegen wird im $PATH nach ihr gesucht. Schau bei Bedarf in ein UNIX-Anfängerbuch.

Hintergrund:
starte ich Programm mit  executive - gibt es ein Fehler (Lib nicht gefunden)
starte ich mit ./executive  - läuft das Programm fehlerfrei

Dann hat die Anwendung ein massives Problem damit, ihre Libraries vernünftig zu verwalten. Vielleicht verwendet sie sowas wie "basename(argv[0])", um den Pfad zu den Bibliotheken zu finden. Das klappt natürlich nicht, wenn die Anwendung über den $PATH ausgeführt wird. Das ist allerdings reine Spekulation - ohne nähere Informationen kann man nur raten, wo es klemmen könnte.