exit.c

来自「SimpleGraphicOperatingSystem 32位图形化操作系统 」· C语言 代码 · 共 59 行

C
59
字号
#include <osdef.h>
#include <stdio.h>

#define MAX_EXITFUNCTIONS 32
static void (__cdecl *ExitFunctionList[MAX_EXITFUNCTIONS] )( void );
static int FunCount=0;


EXPORT void* _onexit(
    void (__cdecl *func )( void )
){
    dprintf("_onexit 0x%X\n", func );
    if( func && FunCount<MAX_EXITFUNCTIONS){
        ExitFunctionList[FunCount++]=func;
        return func;
    }
    return NULL;
};

EXPORT void* _onexit_m(
  void (__cdecl *func )( void )
){
    _onexit( func );
};


EXPORT int atexit(
  void (__cdecl *func )( void )
){
    if( _onexit( func ) )
        return 0;
    return -1;
}

EXPORT void _c_exit()
{
    FunCount=0;
}

EXPORT void _cexit()
{
    dprintf("_cexit()\n");
    while( FunCount>0 )
        ExitFunctionList[--FunCount]();
}

EXPORT void _exit()
{
    dprintf("_exit()\n");
    ExitProcess(13);
}

EXPORT void exit()
{
    dprintf("exit()\n");
    _cexit();
    ExitProcess(13);
}

⌨️ 快捷键说明

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