atexit.c

来自「这是leon3处理器的交叉编译链」· C语言 代码 · 共 77 行

C
77
字号
/* * Copyright (c) 1990 Regents of the University of California. * All rights reserved. * * %sccs.include.redist.c% *//*FUNCTION<<atexit>>---request execution of functions at program exitINDEX	atexitANSI_SYNOPSIS	#include <stdlib.h>	int atexit (void (*<[function]>)(void));TRAD_SYNOPSIS	#include <stdlib.h>	int atexit ((<[function]>)	  void (*<[function]>)();DESCRIPTIONYou can use <<atexit>> to enroll functions in a list of functions thatwill be called when your program terminates normally.  The argument isa pointer to a user-defined function (which must not require arguments andmust not return a result).The functions are kept in a LIFO stack; that is, the last functionenrolled by <<atexit>> will be the first to execute when your programexits.There is no built-in limit to the number of functions you can enrollin this list; however, after every group of 32 functions is enrolled,<<atexit>> will call <<malloc>> to get space for the next part of thelist.   The initial list of 32 functions is statically allocated, soyou can always count on at least that many slots available.RETURNS<<atexit>> returns <<0>> if it succeeds in enrolling your function,<<-1>> if it fails (possible only if no space was available for<<malloc>> to extend the list of functions).PORTABILITY<<atexit>> is required by the ANSI standard, which also specifies thatimplementations must support enrolling at least 32 functions.Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,<<lseek>>, <<read>>, <<sbrk>>, <<write>>.*/#include <stdlib.h>#include "atexit.h"#include <sys/cdefs.h>/* * Register a function to be performed at exit. */int_DEFUN (_atexit,	(fn),	_VOID _EXFUN ((*fn), (_VOID))){  return __register_exitproc (__et_atexit, fn, NULL, NULL);}#ifndef weak_alias  /* Define ALIASNAME as a weak alias for NAME. */#  define weak_alias(name, aliasname) _weak_alias (name, aliasname)#  define _weak_alias(name, aliasname) \      extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));#endifweak_alias(_atexit,atexit);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?