资源简介

里面涵盖啦所有的库函数源代码, 是经过我精心整理的 希望对大家有用

资源截图

代码片段和文件信息

/***
*abort.c - abort a program by raising SIGABRT
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines abort() - print a message and raise SIGABRT.
*
*******************************************************************************/

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#ifdef _DEBUG
#define _INIT_ABORT_BEHAVIOR _WRITE_ABORT_MSG
#else  /* _DEBUG */
#define _INIT_ABORT_BEHAVIOR (_WRITE_ABORT_MSG | _CALL_REPORTFAULT)
#endif  /* _DEBUG */

unsigned int __abort_behavior = _INIT_ABORT_BEHAVIOR;

/***
*void abort() - abort the current program by raising SIGABRT
*
*Purpose:
*   print out an abort message and raise the SIGABRT signal.  If the user
*   hasn‘t defined an abort handler routine terminate the program
*   with exit status of 3 without cleaning up.
*
*   Multi-thread version does not raise SIGABRT -- this isn‘t supported
*   under multi-thread.
*
*Entry:
*   None.
*
*Exit:
*   Does not return.
*
*Uses:
*
*Exceptions:
*
*******************************************************************************/

void __cdecl abort (
        void
        )
{
    _PHNDLR sigabrt_act = SIG_DFL;

    if (__abort_behavior & _WRITE_ABORT_MSG)
    {
        /* write the abort message */
        _NMSG_WRITE(_RT_ABORT);
    }


    /* Check if the user installed a handler for SIGABRT.
     * We need to read the user handler atomically in the case
     * another thread is aborting while we change the signal
     * handler.
     */
    sigabrt_act = __get_sigabrt();
    if (sigabrt_act != SIG_DFL)
    {
        raise(SIGABRT);
    }

    /* If there is no user handler for SIGABRT or if the user
     * handler returns then exit from the program anyway
     */

    if (__abort_behavior & _CALL_REPORTFAULT)
    {
        /* Fake an exception to call reportfault. */
        EXCEPTION_RECORD ExceptionRecord;
        CONTEXT ContextRecord;
        EXCEPTION_POINTERS ExceptionPointers;

#ifdef _X86_
        __asm {
            mov dword ptr [ContextRecord.Eax] eax
            mov dword ptr [ContextRecord.Ecx] ecx
            mov dword ptr [ContextRecord.Edx] edx
            mov dword ptr [ContextRecord.Ebx] ebx
            mov dword ptr [ContextRecord.Esi] esi
            mov dword ptr [ContextRecord.Edi] edi
            mov word ptr [ContextRecord.SegSs] ss
            mov word ptr [ContextRecord.SegCs] cs
            mov word ptr [ContextRecord.SegDs] ds
            mov word ptr [ContextRecord.SegEs] es
            mov word ptr [ContextRecord.SegFs] fs
            mov word ptr [ContextRecord.SegGs] gs
            pushfd
            pop [ContextRecord.EFlags]
        }

        ContextRecord.ContextFlags = CONTEXT_CONTROL;
#pragma warning(push)
#pragma warning(disable:4311)
        ContextRecord.Eip = (ULONG)_R

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3840  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\printf.c

     文件       3186  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\scanf.c

     文件       5396  2005-12-08 15:02  C或C++语言库函数源代码\C语言库函数\xwcsxfrm.c

     文件       3941  2005-12-08 15:02  C或C++语言库函数源代码\C语言库函数\xwctomb.c

     文件       7099  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_ctype.c

     文件       5656  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_filbuf.c

     文件       8875  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_file.c

     文件        511  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_filwbuf.c

     文件       7105  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_flsbuf.c

     文件        497  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_flswbuf.c

     文件       3956  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_fptostr.c

     文件       1543  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_freebuf.c

     文件       1874  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_getbuf.c

     文件       2524  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_mbslen.c

     文件       3434  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_mbslen_s.c

     文件        911  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_newmode.c

     文件       8812  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_open.c

     文件        405  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_setargv.c

     文件       5149  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_sftbuf.c

     文件       4676  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_strerr.c

     文件       3949  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_tolower.c

     文件       3026  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_toupper.c

     文件        621  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_wcserr.c

     文件       5309  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_wctype.c

     文件        468  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_wopen.c

     文件        616  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\_wstargv.c

     文件      11259  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\a_cmp.c

     文件       4476  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\a_env.c

     文件       4802  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\a_loc.c

     文件      12756  2005-12-08 15:01  C或C++语言库函数源代码\C语言库函数\a_map.c

............此处省略780个文件信息

评论

共有 条评论