GNU/Linux >> Znalost Linux >  >> Linux

Lepší náhrada za exit(), atexit() v C

jaký je nejlepší možný způsob ukončení procesu

  1. Pokud jde o jednovláknové, použijte exit() , protože váš kód není vícevláknový.
  2. Jinak se ujistěte, že všechna vlákna kromě jednoho skončila před posledním vláknem a poté bezpečně zavolejte exit() kvůli 1. výše.

Vzhledem k tomu, že k výpadku napájení/hardwaru může dojít kdykoli, je nemožná extrémní obtížnost spolehlivého ukončení vláken uživatelským kódem a chaotická povaha používání paměťových fondů atd. v mnoha netriviálních vícevláknových aplikacích, je lepší navrhnout aplikace a systémy, které dokážou čistit dočasné soubory atd. při spouštění, místo aby se pokoušely mikrospravovat vypínání.

„Ukliďte všechny zdroje, které přidělujete, než odejdete“ zní jako dobrá rada ve třídě nebo na přednášce, ale rychle se stane celým řetězcem albatrosů kolem krku, když čelíte tuctu vláken, front a bazénů v neustále se měnícím dynamickém systému.

Pokud můžete, pokud používáte netriviální OS, nechte ho dělat svou práci a vyčistěte za vás. Je na tom mnohem lépe, než kdy bude váš uživatelský kód.


Linux
  1. Linux vs Windows:Který OS je lepší pro PC hry

  2. Výchozí kód ukončení při ukončení procesu?

  3. Nejlepší editory JavaScriptu pro Linux

  1. Získejte zdrojový kód pro jakýkoli příkaz Linux

  2. Nástroj pro porovnání kódu pro Linux

  3. Kód pro malloc a zdarma

  1. Pro lepší crontab použijte anacron

  2. Jak vyhledat výstupní kódy pro aplikace?

  3. Bash Prompt s posledním výstupním kódem