c语言:Atexit

Atexit简介

编辑
函数名: atexit
头文件:#include<stdlib.h>
功 能: 注册终止函数(即main执行结束后调用的函数)
用 法: void atexit(void (*func)( void));
注意:exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。



#include <stdlib.h>
#include <stdio.h>
 
FILE  *fp=NULL;
 
void  fn1()
{
     char  buf[32]= "atexit" ;
 
     if (NULL!=fp){
         fwrite (buf, sizeof (buf),1,fp);
         printf ( "fwrite *****\n" );
     }
     printf ( "calling fn2*****\n" );
}
 
int  main()
{
     char  *path= "./file.txt" ;
 
     atexit (fn1);
 
     if (NULL==(fp= fopen (path, "w+" ))){
         printf ( "fp is null *****\n" );
         return  0;
     }
     //fclose(fp);
     printf ( "calling main *****\n" );
 
     return  0;
}
 
 
yingc@yingc:~/gcyin/test/tmp/csdn$ ls
cond.c  condtest   exit .c  filetest  filetest.c  file.txt  libtestlib.a  main  main.cpp  main.o  testlib.cpp  testlib.h  testlib.o
yingc@yingc:~/gcyin/test/tmp/csdn$ cat file.txt 
yingc@yingc:~/gcyin/test/tmp/csdn$ ls
cond.c  condtest   exit .c  filetest  filetest.c  file.txt  libtestlib.a  main  main.cpp  main.o  testlib.cpp  testlib.h  testlib.o
yingc@yingc:~/gcyin/test/tmp/csdn$ gcc -o  exit  exit .c 
yingc@yingc:~/gcyin/test/tmp/csdn$ ll
total 1172
drwxrwxr-x  2 yingc yingc    4096  6月 25 10:44 ./
drwxrwxr-x 19 yingc yingc    4096  6月 16 16:43 ../
-rw-rw-r--  1 yingc yingc    1215  5月 30 10:49 cond.c
-rwxrwxr-x  1 yingc yingc    7410  5月 30 10:49 condtest*
-rwxrwxr-x  1 yingc yingc    7389  6月 25 10:44  exit *
-rw-rw-r--  1 yingc yingc     856  6月 25 10:44  exit .c
-rw-r--r--  1 yingc yingc   12288  6月 25 10:44 . exit .c.swp
-rwxrwxr-x  1 yingc yingc    7443  5月 30 14:53 filetest*
-rw-rw-r--  1 yingc yingc     825  5月 30 14:53 filetest.c
-rw-rw-r--  1 yingc yingc       0  5月 30 14:49 file.txt
-rw-rw-r--  1 yingc yingc    2706  5月 29 16:49 libtestlib.a
-rwxrwxr-x  1 yingc yingc 1117061  5月 29 17:13 main*
-rw-rw-r--  1 yingc yingc     520  5月 28 10:49 main.cpp
-rw-rw-r--  1 yingc yingc    2176  5月 29 17:13 main.o
-rw-rw-r--  1 yingc yingc     586  5月 29 16:44 testlib.cpp
-rw-rw-r--  1 yingc yingc     661  5月 29 16:44 testlib.h
-rw-rw-r--  1 yingc yingc    2532  5月 29 16:49 testlib.o
yingc@yingc:~/gcyin/test/tmp/csdn$ ./ exit 
calling main *****
fwrite  *****
calling fn2*****
yingc@yingc:~/gcyin/test/tmp/csdn$ cat file.txt 
atexityingc@yingc:~/gcyin/test/tmp/csdn$ fg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值