Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)
1.exit()函數(shù)
exit(int n)? 其實(shí)就是直接退出程序,
因?yàn)槟J(rèn)的標(biāo)準(zhǔn)程序入口為int main(int argc, char** argv),返回值是int型的。
一般在shell下面,運(yùn)行一個(gè)程序,然后使用命令echo $?就能得到該程序的返回值,也就是退出值,在main()里面,你可以用return n,也能夠直接用exit(n)來(lái)做。unix默認(rèn)的習(xí)慣正確退出是返回0,錯(cuò)誤返回非0。
重點(diǎn):單獨(dú)的進(jìn)程是返回給操作系統(tǒng)的。如果是多進(jìn)程,是返回給父進(jìn)程的。
在父進(jìn)程里面調(diào)用waitpid()等函數(shù)得到子進(jìn)程退出的狀態(tài),以便作不同處理
返回值不能超過(guò)255.
在stdlib.h里面有定義
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
C程序的終止分為兩種: 正常終止和異常終止.
正常終止分為: return, exit, _exit, _Exit, pthreade_exit
異常中指分為: abort, SIGNAL, 線程響應(yīng)取消
主要說(shuō)一下正常終止的前4種, 即exit系列函數(shù).
#include
void exit(int status);
void _Exit(int status);
#include
void _exit(int status);
以上3個(gè)函數(shù)的區(qū)別是:
exit()(或return 0)會(huì)調(diào)用終止處理程序和用戶空間的標(biāo)準(zhǔn)I/O清理程序(如fclose), _exit和_Exit不調(diào)用而直接由內(nèi)核接管進(jìn)行清理.
#include
int atexit(void (*function)(void))
返回值:成功返回0,失敗返回非零數(shù).
ISO C規(guī)定, 一個(gè)進(jìn)程最對(duì)可登記32個(gè)終止處理函數(shù), 這些函數(shù)由exit按登記相反的順序自動(dòng)調(diào)用. 如果同一函數(shù)登記多次, 也會(huì)被調(diào)用多次.
#include
#include
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ī)?lái)的淺談linux下的一些常用函數(shù)的總結(jié)(必看篇)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
總結(jié)
以上是生活随笔為你收集整理的Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: float php 运算_系统的讲解 -
- 下一篇: linux清除configure文件_在