最全的C库函数源代码


里面涵盖啦所有的库函数源代码, 是经过我精心整理的 希望对大家有用
资源截图
代码片段和文件信息
/***
*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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)