6 Stimmen

Prüfen des Rückgabewerts eines C-Programms in einem Bash-Skript?

Ich habe ein Bash-Skript, in dem ich den Exit-Code eines zuletzt ausgeführten Befehls mit der Variablen $? prüfe, aber jetzt führe ich ein C-Programm (aus diesem Skript) aus, das 0 zurückgibt, wenn das Programm erfolgreich ausgeführt wird. Gibt es eine Möglichkeit, wie ich diesen Rückgabewert des C-Programms in meinem Bash-Skript abfangen kann?

Ich glaube, verschiedene Befehle wie awk, sed usw. sind in C geschrieben. Wie verwenden sie $? um ihre Exit-Codes darin zu speichern? Wie kann ich mein C-Programm dazu bringen, seinen Exit-Code in $? zu speichern?

Ich hoffe, meine Frage ist klar.

13voto

Es ist nicht nötig, irgendetwas zu tun - wenn Ihr C-Programm 0 zurückgibt, wird dies in der Datei $? der Shell, die sie ausgeführt hat.

2voto

mouviciel Punkte 64583

Der Rückgabecode eines C-Programms ist der Wert, der von int main() Funktion oder das Argument von exit() Funktion. Das System stellt sie dann dem übergeordneten Prozess über die Funktion wait() Systemaufruf. Wenn der übergeordnete Prozess bash wird dieser Wert dann über die Funktion $? variabel.

1voto

Bash fängt den Exit-Code in $? automagisch. Oder Sie können einfach den Befehl in if wenn Sie sich nur für Null/Nicht-Null interessieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X