PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Makefile



klinsel
06-12-2005, 14:48
Hallo,

Gibt es eine Möglichkeit, einen Befehl ausführen zu lassen, wenn ein Programm mit Ctrl + C abgebrochen wurde?

Zum Beispiel:
all:
rmiregistry 1099 &
./testprog --> hier wird mit Ctrl + C abgebrochen
rm testprog_output.tmp --> wird nicht mehr ausgeführt :-(

gorba
06-12-2005, 15:13
na klar, aber ich würde das mit signalen lösen:

signal(SIGINT, sigfunktion);

in der funktion "sigfunktion(int sig)" kannst du dann dein code definieren, für den fall, dass cnrl&c gedrückt wurde.

greez

bei unklarheiten: shell --> man signal =D

klinsel
06-12-2005, 15:22
Ganz verstehe ich es nicht.

Ich würde gern vom Makefile aus das letzte Kommando ausführen lassen, nicht von meinem Programm.

gorba
06-12-2005, 15:29
edit: sry isch quatsch. du wilst ja n befehl ausfüren WENN abgebrochen wurde.
kann dir leider nich weiterhelfen

ich seh auch den sinn nich richtig, wiso du das vom makefile ausführen willst. wenn du mit singal arbeitest, kannst du deinen befehl ausführen, und dann abbrechen.

Joghurt
06-12-2005, 21:29
Entweder schreibst du dein Programm so um, dass es die Datei selbst löscht, und wenn Ctrl+C gedrückt wurde, die Datei ebenfalls löscht - wie von gorba vorgeschlagen.

Oder du schreibst ein clean Target in dein Makefile, und ruft make mit "make;make clean"