前言
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ?
🎬 個人主頁:@ChenPi
🐻推薦專欄1: 《C++_@ChenPi的博客-CSDN博客》????
🔥 推薦專欄2: 《Linux C應用編程(概念類)_@ChenPi的博客-CSDN博客》???
🛸推薦專欄3: ??????《 鏈表_@ChenPi的博客-CSDN博客 》 ???
🌺本篇簡介 ?:? 這章我們將Linux環境下終止進程的三種方法
01? 三種終止進程的方法:
- ?main 函數中運行 return;
- ?調用 Linux 系統調用_exit()或_Exit();
- ?調用 C 標準庫函數 exit()。
02 return關鍵字
return關鍵字大家應該都很熟吧
#include <stdio.h>int main()
{return 0;
}
?每寫一個程序基本都會寫一遍這個
return是函數執行完后的返回。
return執行完后把控制權交給調用函數。
return()是當前函數返回。如果是在主函數main, 自然也就結束當前進程了
如果不是,那就是退回上一層調用。
在多個進程時.如果有時要檢測上進程是否正常退出的.
就要用到上個進程的返回值,依次類推。
03?_exit()和_Exit()函數
_exit()函數原型:
#include <unistd.h>?void _exit(int status);?
調用函數需要傳入 status 狀態標志,0 表示正常結束、若為其它值則表示程序執行過程中檢測到有錯誤 發生。使用示例如下:
示例代碼: _exit()和_Exit()函數使用
#include <sys/types.h>?
#include <sys/stat.h>?
#include <fcntl.h>?
#include <unistd.h>?
#include <stdio.h>?int main(void)?
{?int fd;?/* 打開文件 */?fd = open("./test_file", O_RDONLY);?if (-1 == fd) {?perror("open error");?_exit(-1);?}?close(fd);?_exit(0);?
}?
用法很簡單,就是程序正常退出就0,非正常就是-1
_Exit()函數原型如下所示:
#include <stdlib.h>?void _Exit(int status);?
_exit()和_Exit()兩者等價,用法作用是一樣的
需要注意的是這 2 個函數都是系統調 用。
04 exit()函數
exit()函數_exit()函數都是用來終止進程的,
exit()是一個標準 C 庫函數
而_exit()和_Exit()是系統調用。
執行 exit()會執行一些清理工作,最后調用_exit()函數。
exit()函數原型:
#include <stdlib.h>void exit(int status);
該函數是一個標準 C 庫函數,使用該函數需要包含頭文件,該函數的用法和_exit()/_Exit()是 一樣的?
平時的話還是用C庫函數比較好吧,畢竟移植性更好
如果要查某些函數的話,我們可以直接查man手冊
這是Linux的終端,比如我們要查malloc函數,我們可以直接man malloc?
然后回車,我們就能看到使用文檔了