亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? setvbuf.c

?? C標(biāo)準(zhǔn)庫(kù)源代碼,能提高對(duì)C的理解,不錯(cuò)的哦
?? C
字號(hào):
/***
*setvbuf.c - set buffer size for a stream
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines setvbuf() - set the buffering mode and size for a stream.
*
*******************************************************************************/

#include <cruntime.h>
#include <stdio.h>
#include <file2.h>
#include <malloc.h>
#include <internal.h>
#include <mtdll.h>
#include <limits.h>
#include <dbgint.h>

/***
*int setvbuf(stream, buffer, type, size) - set buffering for a file
*
*Purpose:
*       Controls buffering and buffer size for the specified stream.  The
*       array pointed to by buf is used as a buffer, unless NULL, in which
*       case we'll allocate a buffer automatically. type specifies the type
*       of buffering: _IONBF = no buffer, _IOFBF = buffered, _IOLBF = same
*       as _IOFBF.
*
*Entry:
*       FILE *stream - stream to control buffer on
*       char *buffer - pointer to buffer to use (NULL means auto allocate)
*       int type     - type of buffering (_IONBF, _IOFBF or _IOLBF)
*       size_t size  - size of buffer
*
*Exit:
*       return 0 if successful
*       returns non-zero if fails
*
*Exceptions:
*
*******************************************************************************/

int __cdecl setvbuf (
        FILE *str,
        char *buffer,
        int type,
        size_t size
        )
{
        REG1 FILE *stream;
        int retval=0;   /* assume good return */

        _ASSERTE(str != NULL);

        /*
         * (1) Make sure type is one of the three legal values.
         * (2) If we are buffering, make sure size is greater than 0.
         */
#ifdef _WIN32
        if ( (type != _IONBF) && ((size < 2) || (size > INT_MAX) ||
#else  /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
        if ( (type != _IONBF) && ((size == 0) || (size > INT_MAX) ||
#endif  /* defined (_M_MPPC) || defined (_M_M68K) */
#endif  /* _WIN32 */
             ((type != _IOFBF) && (type != _IOLBF))) )
                return(-1);

#ifdef _WIN32
        /*
         * force size to be even by masking down to the nearest multiple
         * of 2
         */
        size &= (size_t)~1;
#endif  /* _WIN32 */

        /*
         * Init stream pointers
         */
        stream = str;

        /*
         * Lock the file
         */
        _lock_str(stream);

        /*
         * Flush the current buffer and free it, if it is ours.
         */
        _flush(stream);
        _freebuf(stream);

        /*
         * Clear a bunch of bits in stream->_flag (all bits related to
         * buffering and those which used to be in stream2->_flag2). Most
         * of these should never be set when setvbuf() is called, but it
         * doesn't cost anything to be safe.
         */
        stream->_flag &= ~(_IOMYBUF | _IOYOURBUF | _IONBF |
#ifdef _WIN32
                           _IOSETVBUF |
#endif  /* _WIN32 */
                           _IOFEOF | _IOFLRTN | _IOCTRLZ);

        /*
         * CASE 1: No Buffering.
         */
        if (type & _IONBF) {
                stream->_flag |= _IONBF;
                buffer = (char *)&(stream->_charbuf);
#ifdef _WIN32
                size = 2;
#else  /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
                size = 1;
#endif  /* defined (_M_MPPC) || defined (_M_M68K) */
#endif  /* _WIN32 */
        }

        /*
         * NOTE: Cases 2 and 3 (below) cover type == _IOFBF or type == _IOLBF
         * Line buffering is treated as the same as full buffering, so the
         * _IOLBF bit in stream->_flag is never set. Finally, since _IOFBF is
         * defined to be 0, full buffering is simply assumed whenever _IONBF
         * is not set.
         */

        /*
         * CASE 2: Default Buffering -- Allocate a buffer for the user.
         */
        else if ( buffer == NULL ) {
                if ( (buffer = _malloc_crt(size)) == NULL ) {
#ifndef CRTDLL
                        /*
                         * force library pre-termination procedure (placed here
                         * because the code path should almost never be hit)
                         */
                        _cflush++;
#endif  /* CRTDLL */
                        retval = -1;
                        goto done;
                }
#ifdef _WIN32
                stream->_flag |= _IOMYBUF | _IOSETVBUF;
#else  /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
                stream->_flag |= _IOMYBUF;
#endif  /* defined (_M_MPPC) || defined (_M_M68K) */
#endif  /* _WIN32 */
        }

        /*
         * CASE 3: User Buffering -- Use the buffer supplied by the user.
         */
        else {
#ifdef _WIN32
                stream->_flag |= _IOYOURBUF | _IOSETVBUF;
#else  /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
                stream->_flag |= _IOYOURBUF;
#endif  /* defined (_M_MPPC) || defined (_M_M68K) */
#endif  /* _WIN32 */
        }

        /*
         * Common return for all cases.
         */
        stream->_bufsiz = size;
        stream->_ptr = stream->_base = buffer;
        stream->_cnt = 0;
done:
        _unlock_str(stream);
        return(retval);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日产国产欧美视频一区精品| 亚洲日本电影在线| 久久疯狂做爰流白浆xx| 精品国一区二区三区| 国产成人午夜精品5599| 中文字幕日韩精品一区| 欧美性受xxxx黑人xyx性爽| 天堂在线亚洲视频| 精品久久久久99| 成人免费的视频| 亚洲国产综合人成综合网站| 7777精品伊人久久久大香线蕉完整版 | 爽好久久久欧美精品| 91麻豆精品国产综合久久久久久| 裸体健美xxxx欧美裸体表演| 久久久久久久久99精品| 色综合一区二区| 免费人成精品欧美精品 | 国产亚洲午夜高清国产拍精品 | 中文字幕乱码久久午夜不卡| 91玉足脚交白嫩脚丫在线播放| 亚洲一区精品在线| 精品免费国产一区二区三区四区| 国产一区二区三区观看| 国产精品国产自产拍在线| 欧美日韩一区二区在线观看| 久久99精品久久只有精品| 国产精品美女久久久久久2018| 欧美日韩在线播放三区| 国产一区二区三区蝌蚪| 亚洲综合色在线| 久久婷婷成人综合色| 91福利区一区二区三区| 韩国欧美一区二区| 一二三区精品视频| 国产亚洲欧美日韩在线一区| 色噜噜狠狠色综合中国| 国产一区二区三区久久久| 亚洲一区精品在线| 中文字幕乱码久久午夜不卡| 欧美国产日产图区| 欧美日韩视频第一区| 99久久久国产精品免费蜜臀| 免费av成人在线| 依依成人精品视频| 久久精品一区八戒影视| 欧美喷潮久久久xxxxx| 成人免费视频免费观看| 精品综合久久久久久8888| 一区二区在线免费观看| 久久久综合视频| 777a∨成人精品桃花网| 日本韩国欧美在线| 99久久久免费精品国产一区二区| 韩国一区二区在线观看| 奇米四色…亚洲| 亚洲午夜免费电影| 亚洲精品伦理在线| 中文字幕日本不卡| 日本一区免费视频| 精品久久国产97色综合| 日韩欧美一级精品久久| 制服丝袜亚洲精品中文字幕| 欧美亚洲一区二区在线观看| 99久久综合99久久综合网站| 国产成人亚洲综合a∨婷婷| 九色综合狠狠综合久久| 蜜臀久久99精品久久久画质超高清| 亚洲最快最全在线视频| 一区二区三区四区视频精品免费 | 一区二区高清视频在线观看| 中文欧美字幕免费| 国产蜜臀97一区二区三区| 久久九九99视频| 国产亚洲欧洲997久久综合| 欧美成人aa大片| 精品欧美一区二区久久 | 激情成人午夜视频| 色综合久久88色综合天天| 成人禁用看黄a在线| 成人免费av在线| jizz一区二区| 99在线精品免费| 91在线观看污| 色8久久精品久久久久久蜜| 欧美色图免费看| 91 com成人网| 欧美mv日韩mv| 国产日韩欧美高清| 亚洲免费三区一区二区| 亚洲在线观看免费| 日韩电影在线看| 国产麻豆91精品| 91亚洲资源网| 91.麻豆视频| 久久午夜电影网| 亚洲色图欧洲色图| 婷婷综合久久一区二区三区| 毛片av一区二区| 性做久久久久久| 亚洲不卡av一区二区三区| 日韩av一二三| 综合激情成人伊人| 亚洲丝袜美腿综合| 日韩一区精品字幕| 国产一区久久久| 不卡av免费在线观看| 欧美午夜精品久久久久久孕妇 | 色女孩综合影院| 91麻豆精品国产91久久久资源速度| 精品电影一区二区| 综合激情成人伊人| 男人操女人的视频在线观看欧美| 精品一区在线看| 成人国产精品免费| 欧美日韩第一区日日骚| 久久色在线观看| 亚洲精品老司机| 国产一二精品视频| 91福利在线看| 久久久久久久久97黄色工厂| 伊人性伊人情综合网| 黄一区二区三区| 日本久久精品电影| 久久老女人爱爱| 日韩精品电影在线观看| 成人一区在线观看| 91麻豆精品国产无毒不卡在线观看 | 一区二区三区精品视频| 精品一区二区免费在线观看| 日本国产一区二区| 国产欧美精品一区aⅴ影院 | 欧美视频一区二区三区在线观看| 久久久久国产精品麻豆ai换脸| 亚洲国产综合色| 一本久道久久综合中文字幕| 精品国产麻豆免费人成网站| 亚洲不卡av一区二区三区| a亚洲天堂av| 国产亚洲1区2区3区| 视频一区二区欧美| 日本黄色一区二区| 一区在线播放视频| 国产露脸91国语对白| 在线播放日韩导航| 一级特黄大欧美久久久| 91在线观看成人| 国产精品传媒视频| 国产成人精品免费| 精品国产免费人成在线观看| 日本网站在线观看一区二区三区| 欧美中文字幕一区二区三区| 亚洲视频一区二区在线| a在线播放不卡| 国产精品久久久久久久浪潮网站| 国产成人免费在线观看不卡| 精品粉嫩aⅴ一区二区三区四区| 视频一区视频二区在线观看| 欧美精品久久久久久久多人混战| 一区二区三区中文字幕在线观看| 91美女精品福利| 亚洲人快播电影网| 91啪亚洲精品| 亚洲视频免费看| 一本色道a无线码一区v| 一区二区在线观看av| 色婷婷av一区二区三区之一色屋| 亚洲人xxxx| 精品视频一区二区三区免费| 亚洲成人第一页| 欧美一区二区私人影院日本| 美女视频黄a大片欧美| 欧美一区二区三区小说| 另类人妖一区二区av| 欧美电影免费观看高清完整版在 | 欧美日韩亚洲国产综合| 亚洲成人久久影院| 欧美一级黄色大片| 国产一区二区三区四区五区美女 | 亚洲欧洲日韩综合一区二区| 91在线观看美女| 亚洲高清免费视频| 91麻豆精品国产91久久久资源速度| 日韩精品久久理论片| 精品国产乱码久久久久久久久| 国产精品99精品久久免费| 国产精品国产三级国产三级人妇| 91片在线免费观看| 爽爽淫人综合网网站| 亚洲精品一区二区三区福利| 成人黄页毛片网站| 一区二区三区精品久久久| 91精品国产入口在线| 国产福利电影一区二区三区| 综合网在线视频| 欧美精品在线一区二区| 国内精品写真在线观看| 自拍偷拍亚洲欧美日韩| 9191成人精品久久| 成人激情文学综合网|