Programm Exitcode

Anfängerfragen zum Programmieren mit PureBasic.
rolf
Beiträge: 17
Registriert: 18.01.2005 17:00

Programm Exitcode

Beitrag von rolf »

Hallo,
kann ich eigendlich einem Programm einen Exitcode bei der Beendung des Programmes setzen?
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von FISCHAUGE »

Na alles Senkrecht?
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Meinst du sowas?
End MessageRequester("","",0)
-.-"
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic.chm hat geschrieben:Syntax
End [ExitCode]

Beschreibung

Beendet ordentlich die Programmausführung. Der optionale 'ExitCode' Parameter kann angegeben werden, wenn das Programm einen Fehlercode zurückgeben soll (häufig in Konsolen-Programmen genutzt).
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
rolf
Beiträge: 17
Registriert: 18.01.2005 17:00

Beitrag von rolf »

Ja genau ExitCode war genau das was ich gesucht habe.
Vielen Dank.
rolf
Beiträge: 17
Registriert: 18.01.2005 17:00

End [ExitCode] funktioniert irgendwie nicht

Beitrag von rolf »

Hallo,
ich möchte für ein Netzwerkmonitoringsystem (Nagios) mit Purebasic einige kleine Prüfroutinen schreiben.
Ich habe hierzu ein Consolenprogramm geschrieben, das mit dem End Befehl einen Exitcode an das Netzwerkmonitoringsystem übergeben soll.
Der Rückgabe bedeutet hierbei
0=OK, 1=WARNING, 2=CRITICAL ...
Egal welcher Returncode ich zurückgebe, im Monitoing erscheint immer der Status OK.
Mit anderen Programmiersprachen (c, perl, php, shellscript) funktionieren diese Returncodes ohne Probleme.
Ich hab bereits folgende Versuche unternommen den Rückgabewert zu erhalten:
end 2
end "2"
end print("2")
Das Problem besteht sowohl unter Linux als auch unter Windows.
Hat jemand einen Tip für mich?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Für das Programm per Batch aus und schreibe den Rückgabewert in eine Datei, oder was ähnlichem. Elegantere Möglichkeit kenne ich im Moment leider nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
rolf
Beiträge: 17
Registriert: 18.01.2005 17:00

Beitrag von rolf »

Ich hab das eben mal probiert, ich erhalte aber überhaupt keinen Rückgabewert.
Mein Purebasic Code:
OpenConsole()
Print("Test ")
CloseConsole()
End 1

Und das Perlskript:
#!/usr/bin/perl -w
$Check = `/tmp/check_test`;
print $Check;

Das einzige was auf der Console erscheint ist die Ausgabe Test.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich hab Deinen Source zu Console.exe compiliert und folgenden Batch unter Windows verwendet:

Code: Alles auswählen

console.exe
echo %errorlevel%
Es wurde mit 1 angezeigt, sollte in Linux ähnlich gehen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
rolf
Beiträge: 17
Registriert: 18.01.2005 17:00

Beitrag von rolf »

Also ich hab das jetzt auch mal unter Windows compiliert.
Mein %errorlevel% ist immer 0.
Antworten