GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Besserer Ersatz für exit(), atexit() in C

Was ist die bestmögliche Art der Prozessbeendigung

  1. Wenn Sie Single-Threading verwenden, verwenden Sie einfach exit() , da Ihr Code nicht multi-threaded ist.
  2. Stellen Sie andernfalls sicher, dass alle bis auf einen Thread vor dem letzten Thread beendet wurden, und rufen Sie dann sicher exit() auf wegen 1. oben.

Angesichts der Tatsache, dass Strom-/Hardwareausfälle jederzeit auftreten können, der imposs.. extremen Schwierigkeit, Threads mit Benutzercode zuverlässig zu beenden und der chaotischen Natur der Verwendung von Speicherpools usw. in vielen nicht trivialen Multithread-Apps, ist es besser zu entwerfen Apps und Systeme, die temporäre Dateien usw. beim Start bereinigen können, anstatt zu versuchen, das Herunterfahren im Mikromanagement zu verwalten.

„Säubern Sie alle Ressourcen, die Sie zuweisen, bevor Sie gehen“ klingt wie ein guter Ratschlag in einem Klassenzimmer oder einer Vorlesung, wird aber schnell zu einer ganzen Kette von Albatrossen um Ihren Hals, wenn Sie mit einem Dutzend Threads, Warteschlangen und Pools in einem sich ständig ändernden dynamischen System konfrontiert werden.

Wenn Sie unter einem nicht trivialen Betriebssystem arbeiten, lassen Sie es nach Möglichkeit seine Arbeit erledigen und für Sie aufräumen. Es ist viel besser darin, als Ihr Benutzercode es jemals sein wird.


Linux
  1. Bash-Befehlszeilen-Exit-Codes entmystifiziert

  2. Standard-Exit-Code, wenn der Prozess beendet wird?

  3. Holen Sie sich den Quellcode für jeden Linux-Befehl

  4. Was sind Bash-Exit-Codes in Linux

  5. Bash-Eingabeaufforderung mit letztem Exit-Code

3 Kommandozeilen-Tools zum Vortäuschen von Produktivität

10+ beste Python-IDEs für Linux

Exa – Ein moderner Ersatz für ls Command

Zorin OS 15 Lite – Der beste Ersatz für Windows 7

Exa – Ein moderner Ersatz für den Befehl ls

Rückgabecode von sed für keine Übereinstimmung