linux 程序開始與終止

2021-07-22 03:30:43 字數 1440 閱讀 6054

exit(0) 表示程式正常退出;

exit(1)/exit(-1) 表示程式異常退出;

exit() 結束當前程序/當前程式/,在整個程式中,只要被呼叫就結束,返回引數值;

return() 是當前函式返回,當然如果是在主函式main, 自然也就結束當前程序了,如果不是,那就是退回上一層呼叫。在多個程序時.如果有時要檢測上程序是否正常退出的.就要用到上個程序的返回值.

c程式是從main函式開始執行, 原型如下:

int main(int argc, char *argv);

include int main(int argc, char *argv)

c程式的終止分為兩種: 正常終止和異常終止.

正常終止分為: return, exit, _exit, _exit, pthreade_exit

異常終止分為: abort, signal, 執行緒響應取消

主要說一下正常終止的前4種, 即exit系列函式.

#include 

void

exit(int status);

void _exit(int status);

#include

void _exit(int status);

以上3個函式的區別是:

exit()(或return 0)會呼叫終止處理程式和使用者空間的標準i/o清理程式(如fclose), _exit和_exit不呼叫而直接由核心接管進行清理.因此, 在main函式中exit(0)等價於return 0.

atexit終止處理程式:

iso c規定, 乙個程序最對可登記32個終止處理函式, 這些函式由exit按登記相反的順序自動呼叫. 如果同一函式登記多次, 也會被呼叫多次.

原型如下:

#include 

int atexit(void (*func)(void));

其中引數是乙個函式指標, 指向終止處理函式, 該函式無參無返回值.

以下面的程式為例:

#include 

static

void myexit1()

static

void myexit2()

int main()

執行結果:

$ ./a.out

main is done

first exit handler

first exit handler

second exit handler

執行結果:

$./a.out arg1 arg2 arg3

argv[0]: ./a.out

argv[1]: arg1

argv[2]: arg2

argv[3]: arg3

Linux 程序建立 程序終止

程序終止 fork 在linux中fork函式時非常重要的函式,它從已存在程序中建立乙個新程序。新程序為子程序,而原程序為父程序。include pid t fork void 返回值 自程序中返回0,父程序返回子程序id,出錯返回 1子程序複製父程序的pcb,因此複製了父程序的程式計數器,所以和父...

Linux程序終止訊號

sigterm 該訊號可由程序捕獲,使用該訊號讓程序有機會在退出之前做好清理工作,從而優雅地終止。sigint 當使用者按下中斷鍵 一般採用delete或ctrl c 時,終端驅動程式產生此訊號並傳送至前台程序組中的每乙個程序。sigkill 該訊號不能被程序捕捉和忽略,它向系統管理員提供了一種可靠...

Linux 程序的建立 等待與終止

使用fork函式來建立程序,它可以從已存在的程序中建立乙個新程序,新程序為子程序,原程序為父程序。程序呼叫fork,當控制轉移到核心中的fork 後,核心 程序建立的 執行結果 可以從結果看出新產生了乙個pid為4060的程序,這個程序就是子程序,pid為4059的程序是父程序,在子程序也進入到程序...