C++exit() 関数はプロセスを終了できません

exit() _exit() 違い:
_exit() 関数: プロセスを直接停止し、プロセスが使用するメモリ空間をクリアし、カーネル内のさまざまなデータ構造を破棄します; exit() 関数はいくつかのプロセスを作成します パッケージ化のために、いくつかのプロセスが追加され
ます実行が終了する前。

exit() 関数と _exit() 関数の最大の違いは、exit() 関数が exit システム コールを呼び出す前にファイルのオープンをチェックし、ファイル バッファの内容をファイルに書き戻すことです。

プログラムが exit() を使用してプロセスを終了する場合、I/O キャッシュは終了前にクリーンアップされ、すぐには終了しません。

プログラムがシグナル signal を処理する関数を記述すると、シグナルがキャプチャされてプロセスが終了できなくなり、プログラムが終了できない状態になり、スタック情報が常に出力される可能性があります。

 

プログラムが _exit() を使用してプロセスを終了すると、I/O キャッシュのクリーンアップは実行されず、終了します。上記の問題を解決します。ただし、_exit() 関数はプロセスを直接閉じるため、バッファー内のデータは失われます。

exit() _exit()_LevinLin のブログ - CSDN blog_exit

おすすめ

転載: blog.csdn.net/Lemon_D1999/article/details/128870230