Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 02.07.2009, 17:11 Titel: vor dem Programm-Kill |
|
|
Hallo!
Kleine Frage: Wenn ein Programm grade was am berechnen ist, reagiert es natürlich nicht auf Benutzereingaben. Wenn man es Abschießen will (unter Linux mit KILL (+PID) und unter Windows mit dem Taskmanager), hat das Programm dann keine Gelegenheit mehr, seine Daten zu retten? Oder zumindest in eine LOG-Datei zu schreiben: "17:07 - Hey, ich wurde abgeschossen!"
Unter Linux gibts das TERM-Signal.. zumindest hab ich davon gehört. Weiss aber nicht obs sowas auch unter Windows gibt oder wie man das generell abfängt und eine "notfall-Prozedur" einleitet. Gibts da was Plattformunabhängiges?
Wenn nein, wie sieht das im einzelnen unter Linux und Windows aus? |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 02.07.2009, 17:16 Titel: |
|
|
unter win udn linux gibt es die möglichkeit per "InKey()" diesen "kill" abzufangen.
Wenn du in deiner ebrechungsschleife zyklisch das "InKey()" abfragst kannst du auf das Kill ereigniss reagieren. Welche Codes da jetzt raus kommen weis ich grad nicht aus dem kopf .. aber das sollte kein prob sein mal auszuprobieren.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 02.07.2009, 17:36 Titel: |
|
|
chr(255,107) ist "fenter schließen"... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 02.07.2009, 21:05 Titel: |
|
|
In der Shellscript-Programmierung existiert das Konzept von
Dazu ein Beispiel:
http://beilagen.dreael.ch/QB/trap_demo.sh
In diesem Beispiel wird Strg+C, mit welchem man normalerweise Shellscripte stoppt, abgefangen...
Für C-Programmierer:
Und zum Glück noch ein Beispiel aus meiner Studienzeit dazu gefunden:
http://beilagen.dreael.ch/QB/sigint.c
Übrigens kann jedes Signal, ausgenommen 9 (SIGKILL) abgefangen werden, denn -9 bedeutet ja einen Prozess direkt beenden.
=> nun ist der FreeBasic-Spezialist gefragt, der entweder einen Weg kennt, diese bei jedem UNIX/Linux vorhandene C-Standardfunktion aufzurufen oder vielleicht sogar ein hübsch :-) eingepackter Befehl kennt.
Falls letzeres noch nicht existiert, wäre doch
Code: | ON SIGNAL signalnummer% CALL Sub |
etwas Passendes (Vorschlag zur Spracherweiterung ans FB-Entwicklerteam!)... ;-) Schwierigkeit wäre höchstens, eine auch für Win32 (Microsoft) portierbare Lösung zu finden, d.h. ich würde die UNIX/Linux-Signalnummer daher bewusst einkapseln in einen Satz von Signals, die jede von FB zurzeit unterstützte Plattform versteht. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 03.07.2009, 21:53 Titel: |
|
|
Irgendjemand hat hier auch mal (vor 2jahren xD) ne Sub gepostet die beim Kill des Programms aufgerufen wird... aber habs jetzt nicht gefunden, müsstest du mal selbst suchen  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.07.2009, 11:35 Titel: |
|
|
wie wär's mit dem DESTRUCTOR?  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 04.07.2009, 12:59 Titel: |
|
|
destructor fuzt bei kill n 9 nicht.
Ein Grund warum ich TSNE_DEF_REUSER eingebaut hab hab.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
|