分享unix高级编程之命令行参数

悟途网 2013年06月06日 22:15 阅读()
字号 (A- A+)

1 atexit 函数

格式

#include <stdlib.h>

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

其中,atexit函数的参数是一个函数地址,当调用此函数时无需向他传递任何参数,也不期望他返回一个值。exit调用这些函数的顺序与他们登记时候的顺序相反。同一函数如若登记多次,则也会被调用多次。

2 实例

#include <stdio.h>

static void my_exit1(void);

static void my_exit2(void);

static void my_exit3(void);

int main(void)

{

if(atexit(my_exit2)!=0)

printf("can't register my_exit2");

if(atexit(my_exit1)!=0)

printf("can't register my_exit1");

if(atexit(my_exit3)!=0)

printf("can't register my_exit1");

printf("main is done\n");

return 0;

}

static void my_exit1(void)

{

printf("first exit handler\n");

}

static void my_exit2(void)

{

printf("second exit handler\n");

}

static void my_exit3(void)

{

printf("third exit handler\n");

}

3 结果

main is done

third exit handler

first exit handler

second exit handler

浏览过的人还看过的文章

热门文章
随机推荐
分享Linux系统都有哪些重启命令

分享Linux系统都有哪些重启

Linux系统重启命令,1、shutdown,2、poweroff,3、init,4、...

怎么修改ubuntu终端显示目录和计算机名称

怎么修改ubuntu终端显示目录

怎么修改ubuntu终端显示目录和计算机名称,方法:# P...

linux下使用find xargs grep查找文件及文件内容

linux下使用find xargs grep查找

linux下使用find xargs grep查找文件及文件内容,在某个路...

Linux平台上手动卸载Oracle数据库

Linux平台上手动卸载Oracle数

Linux平台上手动卸载Oracle数据库,系统环境:Red Hat En...

怎么修改Ubuntu下的jenkins端口号

怎么修改Ubuntu下的jenkins端口

怎么修改Ubuntu下的jenkins端口号,1. 修改do_start函数的...

linux下设置oracle开机自启动

linux下设置oracle开机自启动

linux下设置oracle开机自启动,vi /etc/rc.local,dbstart.sh的内容...

linux根文件系统的制作方法

linux根文件系统的制作方法

linux根文件系统的制作方法:(一):首先linux根文件系...

怎么安装和配置Linux系统中的Sendmail服务器

怎么安装和配置Linux系统中

Linux系统中的Sendmail服务器的安装和配置,1.首先安装...