淺談linux下的一些常用函數(shù)的總結(jié)(必看篇)
1.exit()函數(shù)
exit(int n) 其實就是直接退出程序,
因為默認(rèn)的標(biāo)準(zhǔn)程序入口為int main(int argc, char** argv),返回值是int型的。
一般在shell下面,運行一個程序,然后使用命令echo $?就能得到該程序的返回值,也就是退出值,在main()里面,你可以用return n,也能夠直接用exit(n)來做。unix默認(rèn)的習(xí)慣正確退出是返回0,錯誤返回非0。
重點:單獨的進(jìn)程是返回給操作系統(tǒng)的。如果是多進(jìn)程,是返回給父進(jìn)程的。
在父進(jìn)程里面調(diào)用waitpid()等函數(shù)得到子進(jìn)程退出的狀態(tài),以便作不同處理
返回值不能超過255.
在stdlib.h里面有定義
#define EXIT_SUCCESS 0 #define EXIT_FAILURE 1
C程序的終止分為兩種: 正常終止和異常終止.
正常終止分為: return, exit, _exit, _Exit, pthreade_exit
異常中指分為: abort, SIGNAL, 線程響應(yīng)取消
主要說一下正常終止的前4種, 即exit系列函數(shù).
#include <stdlib.h> void exit(int status); void _Exit(int status); #include <unistd.h> void _exit(int status);
以上3個函數(shù)的區(qū)別是:
exit()(或return 0)會調(diào)用終止處理程序和用戶空間的標(biāo)準(zhǔn)I/O清理程序(如fclose), _exit和_Exit不調(diào)用而直接由內(nèi)核接管進(jìn)行清理.
#include<stdlib.h> int atexit(void (*function)(void))
返回值:成功返回0,失敗返回非零數(shù).
ISO C規(guī)定, 一個進(jìn)程最對可登記32個終止處理函數(shù), 這些函數(shù)由exit按登記相反的順序自動調(diào)用. 如果同一函數(shù)登記多次, 也會被調(diào)用多次.
#include<stdlib.h> #include<unistd.h> static void my_exit1() { printf("first exit handlern\n"); } static void my_exit2() { printf("second exit handlern\n"); } int main() { if (atexit(my_exit2) != 0) printf("can't register my_exit2n\n"); if (atexit(my_exit1) != 0) printf("can't register my_exit1n\n"); if (atexit(my_exit1) != 0) printf("can't register my_exit1n\n"); printf("main is donen\n"); return 0; }
addia@addia-Lenovo-B470:~$ ./test main is donen first exit handlern first exit handlern second exit handlern
以上就是小編為大家?guī)淼臏\談linux下的一些常用函數(shù)的總結(jié)(必看篇)全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
Linux使用 iftop 實時監(jiān)控網(wǎng)卡的流量
iftop可以用來監(jiān)控網(wǎng)卡的實時流量(可以指定網(wǎng)段)、反向解析IP、顯示端口信息等。這篇文章主要介紹了Linux 實時網(wǎng)卡流量監(jiān)控,需要的朋友可以參考下2019-11-11CentOS7.4下MySQL5.7.28二進(jìn)制方式安裝的方法步驟
這篇文章主要介紹了CentOS7.4下MySQL5.7.28二進(jìn)制方式安裝的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11關(guān)于安裝linux redhat后無法使用yum命令安裝gcc-c++問題的解決過程
這篇文章主要介紹了關(guān)于安裝linux redhat后無法使用yum命令安裝gcc-c++問題的解決過程,需要的朋友可以參考下2017-08-08Linxu下性能指標(biāo)采集工具之nmon工具的使用
Linux下查看CPU信息一般采用top命令來實時觀察,但是這種對于只是通過觀察數(shù)據(jù)的變化來評估cpu的實時情況顯然不太科學(xué)。如果想要通過圖標(biāo)的形式來表現(xiàn)則需要借助一些外部工具,今天就來講解一下nmon工具的使用2023-04-04