![]() |
[GNU/Linux] Prozess starten
Ich bin dabei, auf GNU/Linux mittels Free Pascal ein Programm zu schreiben.
Nun möchte ich hieraus ein anderes Programm aufrufen. Unter Windows würde ich ShellExecute nutzen; für unixoide Systeme habe ich bisher nur die exec()-Funktionen gefunden, die's in FreePascal bzw. der Unit "Unix" scheinbar nicht gibt. Kann mir da jemand weiterhelfen? |
AW: [GNU/Linux] Prozess starten
![]() Nachtrag: Execl Execute process (using argument list) Execle Execute process (using argument list, environment) Execlp Execute process (using argument list, environment; search path) Execv Execute process Execve Execute process using environment Execvp Execute process, search path Grüße Klaus |
AW: [GNU/Linux] Prozess starten
Fork() erstellt eine Kopie des Elternprozesses.
Angenommen ich habe mein Programm 'wuppdi' und rufe darin fork() auf - dann wird 'wuppdi' erneut gestartet. Ich möchte jedoch ein anderes Programm starten (nämlich 'fpc'). Daher hilft mir fork() leider nicht weiter. Danke trotzdem! |
AW: [GNU/Linux] Prozess starten
dann gäbe es noch shell
Grüße Klaus |
AW: [GNU/Linux] Prozess starten
Danke, das ist genau das, was ich suche!
|
AW: [GNU/Linux] Prozess starten
Hi!
Vielleicht solltest du mal einen Blick auf die Klasse TProcess in der Unit process werfen. Diese erlaubt es dir Prozesse zu starten, Ein-/Ausgabe umzuleiten und den Exitcode eines Prozesses zu ermitteln. Die Doku zu dem Thema findest du ![]() ![]() Bzgl "fork": In Unix sieht das Starten eines Prozesses normalerweise so aus: Der Elternprozess ruft "fork" auf, welches einen Klon des Elterprozesses als Kind erzeugt. Der Kindprozess ruft nun "exec" auf, welches das Anwendungsabbild, welches vom Elternprozess geerbt wurde, durch das der neuen Anwendung ersetzt (TProcess macht unter Unix genau das, während es unter Windows CreateProcess verwendet). Edit: " am Ende der URL vergessen... Gruß, Sven |
AW: [GNU/Linux] Prozess starten
zu TProcess: Ist mir hier etwas overpowert und umständlich, Shell bzw. FpSystem passt bei mir gerade einfach zu gut rein.
zu fork()/exec(): Interessant, sollte ich mir merken. Danke! |
AW: [GNU/Linux] Prozess starten
Zitat:
![]() Gruß, Sven |
AW: [GNU/Linux] Prozess starten
Zitat:
fork() kopiert in der Tat den aktuellen Prozeß und exec() ersetzt das Image. Ich empfehle die einschlägige Literatur. |
AW: [GNU/Linux] Prozess starten
Zitat:
Trotzdem danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz