exit() _exit() 違い:
_exit() 関数: プロセスを直接停止し、プロセスが使用するメモリ空間をクリアし、カーネル内のさまざまなデータ構造を破棄します; exit() 関数はいくつかのプロセスを作成します パッケージ化のために、いくつかのプロセスが追加され
ます実行が終了する前。
exit() 関数と _exit() 関数の最大の違いは、exit() 関数が exit システム コールを呼び出す前にファイルのオープンをチェックし、ファイル バッファの内容をファイルに書き戻すことです。
プログラムが exit() を使用してプロセスを終了する場合、I/O キャッシュは終了前にクリーンアップされ、すぐには終了しません。
プログラムがシグナル signal を処理する関数を記述すると、シグナルがキャプチャされてプロセスが終了できなくなり、プログラムが終了できない状態になり、スタック情報が常に出力される可能性があります。
プログラムが _exit() を使用してプロセスを終了すると、I/O キャッシュのクリーンアップは実行されず、終了します。上記の問題を解決します。ただし、_exit() 関数はプロセスを直接閉じるため、バッファー内のデータは失われます。