Prüfen, ob Befehl in "PATH"

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Prüfen, ob Befehl in "PATH"

Beitrag von monta »

Ich möchte über TProcess innerhalb eines Threads einen Befehl anstoßen und die Ausgabe entsprechend wieder einlesen. Das ist soweit auch alles kein Problem.

Nur, wenn der Befehl nicht existiert scheint sich der Process niemals zu beenden was natürlich auch zur Folge hat, das der Thread ewig weiter läuft.

Gibt es eine Möglichkeit, zu prüfen, ob der Befehl überhaupt auf dem aktuellen System zur Verfügung steht?
(Also bei Windows im PATH liegt, bzw. eben bei Linux unter den verdächtigen Ordnern und über die Konsole nutzbar ist?)
Johannes

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Prüfen, ob Befehl in "PATH"

Beitrag von mschnell »

OOops,
Linux verwendet doch ausschließlich die aktuelle PATH Variable zum Auffinden eines Executables.

Mit "which" kannst Du Dir das Executable suchen lassen.

-Michael

Benutzeravatar
theo
Beiträge: 10955
Registriert: Mo 11. Sep 2006, 19:01

Re: Prüfen, ob Befehl in "PATH"

Beitrag von theo »

monta hat geschrieben: Nur, wenn der Befehl nicht existiert scheint sich der Process niemals zu beenden
Bist du sicher? Das kann ich nicht nachvollziehen. Es gibt doch eine astreine Exception, wenn das Prog. nicht da ist.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Prüfen, ob Befehl in "PATH"

Beitrag von monta »

Muss ich nochmal probieren.

eventuell liegt es auch an dem Code, der die Ausgabe üder die Pipe wieder einliest, das der irgendwie den Abbruch nicht mitbekommt.
Johannes

Antworten