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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? open.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
?? 第 1 頁 / 共 2 頁
字號:
#pragma data_seg()

/* Mac definitions for ioDenyModes */

#define MAC_PERMRD 0x0001
#define MAC_PERMWR 0x0002
#define MAC_DENYRD 0x0010
#define MAC_DENYWR 0x0020


/***
*int _open(path, flag, pmode) - open or create a file
*
*Purpose:
*       Opens the file and prepares for subsequent reading or writing.
*       the flag argument specifies how to open the file:
*         _O_APPEND -   reposition file ptr to end before every write
*         _O_BINARY -   open in binary mode
*         _O_CREAT -    create a new file* no effect if file already exists
*         _O_EXCL -     return error if file exists, only use with O_CREAT
*         _O_RDONLY -   open for reading only
*         _O_RDWR -     open for reading and writing
*         _O_TEXT -     open in text mode
*         _O_TRUNC -    open and truncate to 0 length (must have write permission)
*         _O_WRONLY -   open for writing only
*       exactly one of _O_RDONLY, _O_WRONLY, _O_RDWR must be given
*
*       The pmode argument is only required when _O_CREAT is specified.  Its
*       flag settings:
*         _S_IWRITE -   writing permitted
*         _S_IREAD -    reading permitted
*         _S_IREAD | _S_IWRITE - both reading and writing permitted
*       The current file-permission masks is applied to pmode before
*       setting the permission (see umask).
*
*       Note, the _creat() function also uses this function but setting up the
*       correct arguments and calling _open().
*
*Entry:
*       char *path - file name
*       int flag - flags for _open()
*       int pmode - permission mode for new files
*
*Exit:
*       returns file handle of open file if successful
*       returns -1 (and sets errno) if fails
*
*Exceptions:
*
*******************************************************************************/

int __cdecl _open (
        const char *path,
        int oflag,
        ...
        )
{
        va_list ap;

        va_start(ap, oflag);
        /* default sharing mode is DENY NONE */
        return _sopen(path, oflag, _SH_DENYNO, va_arg(ap, int));
}

/***
*void __mopen(stpath, fh, ioPermssn, ioDenyModes) - MAC open a file with sharing
*
*Purpose:
*       Worker routine to open a file on the MAC.  It only opens the file.
*  If local open fails it will try AppleShare oepn.
*
*Entry:
*       char *stpath -  file to open (Pascal string)
*       int fh - file handle to use
*       int ioPermssn - persmission modes flags
*       int ioDenyModes -       Deny mode flags
*
*Exit:
*       returns TRUE if successful and sets errno & _osfhnd[fh] &
*                       _osfile[fh] if successful
*
*Exceptions:
*
*******************************************************************************/

int __cdecl __mopen (
        char *stpath,
        int fh,
        int ioPermssn,
        int ioDenyModes
        )
{
        HParamBlockRec parm;
        OSErr osErr;
        char sz[256];
        char buf[10];
        char *pch;

        //if starts with full path, test the availability of the volume
        memcpy(sz, stpath, (*stpath+1));
        _p2cstr(sz);

        if (*sz != ':' && (pch = strchr(sz, ':')) != NULL)
        {
                *(pch+1) = '\0';
                _c2pstr(sz);
                memset(&parm, 0, sizeof(HParamBlockRec));
                memset(buf, 0, 10);
                parm.ioParam.ioNamePtr = sz;
                parm.ioParam.ioBuffer = buf;
                parm.ioParam.ioReqCount = 6;
                osErr = PBHGetVolParmsSync(&parm);

                if (!osErr)
                {
                        if (!(buf[4]&0x8000))
                        {
                                parm.ioParam.ioNamePtr = stpath;
                                parm.ioParam.ioVRefNum = 0;
                                goto local;
                        }
                }
                else
                {
                        _dosmaperr(osErr);
                        return osErr;
                }
        }

        /* try to open the file using Appleshare calls*/
        parm.ioParam.ioNamePtr = stpath;
        parm.ioParam.ioVRefNum = 0;
        parm.accessParam.ioDenyModes = (unsigned char)ioDenyModes;
        _osperm[fh] = (unsigned char)ioDenyModes;
        parm.fileParam.ioDirID = 0;
        parm.ioParam.ioMisc = NULL;
        osErr = PBHOpenDenySync(&parm);

        if (osErr == paramErr)
        {
local:
                /* Try local open */
                parm.ioParam.ioPermssn = ioPermssn;
                _osperm[fh] = (unsigned char)ioPermssn;
                osErr = PBHOpenDFSync(&parm);
        }

        if (!osErr)
        {
                _osfile[fh] |= FOPEN;
                _osfhnd[fh] = parm.ioParam.ioRefNum;
        }
        else
        {
                _dosmaperr(osErr);
        }

        return osErr;
}

/***
*int _sopen(path, oflag, shflag, pmode) - open a file with sharing
*
*Purpose:
*       Opens the file with possible file sharing.
*       shflag defines the sharing flags:
*         _SH_DENYRW -  deny read and write access to the file
*         _SH_DENYNO -  permit read and write access
*
*       Other flags are the same as _open().
*
*       SOPEN is the routine used when file sharing is desired.
*
*Entry:
*       char *path - file to open (C string)
*       int oflag -     open flag
*       int shflag -    sharing flag
*       int pmode -     permission mode (needed only when creating file)
*
*Exit:
*       returns file handle for the opened file
*       returns -1 and sets errno if fails.
*
*Exceptions:
*
*******************************************************************************/

int _cdecl _sopen (
        const char *path,
        int oflag,
        int shflag,
        ...
        )
{

        int fh;         /* handle of opened file */
        OSErr osErr = 0;
        unsigned char ioPermssn;
        short int ioDenyModes;
        ParamBlockRec parm;
        int pmode;
        va_list ap;                     /* variable argument (pmode) */
        char lpath[256];

        if (!*path)
        {
                errno = ENOENT;
                return -1;
        }

        strcpy(lpath,path);
        _c2pstr(lpath);

        /* get a file handle*/
        for (fh = 0; fh <_nfile; fh++)
        {
                if (!(_osfile[fh] & FOPEN))
                {
                        break;
                }
        }

        if (fh >= _nfile)
        {
                errno = EMFILE;
                _macerrno = 0;
                return -1;
        }

        _osfile[fh] = 0;
                _osfileflags[fh] = 0;

        /* figure out binary/text mode */

        switch (oflag  & (_O_BINARY | _O_TEXT))
        {
                case _O_BINARY:
                        break;

                case _O_TEXT:
                        _osfile[fh] = (unsigned char)FTEXT;
                        break;

                case _O_TEXT | _O_BINARY:
                        errno = EINVAL;
                        return -1;

                default:
                        if (_fmode != _O_BINARY)
                        {
                                _osfile[fh] = (unsigned char)FTEXT;
                        }
                        break;
        }

        /* figure out read/write modes */

        switch (oflag & (_O_RDWR | _O_RDONLY | _O_WRONLY))
        {
                case _O_RDONLY:
                        ioPermssn = fsRdPerm;
                        _osfile[fh] |= FRDONLY;
                        if (oflag & _O_TRUNC)
                        {
                                errno = EINVAL;
                                return -1;
                        }
                        ioDenyModes = MAC_PERMRD;
                        break;

                case _O_WRONLY:
                        ioPermssn = fsRdWrShPerm;
                        _osfile[fh] |= FWRONLY;
                        ioDenyModes = MAC_PERMWR;
                        break;

                case _O_RDWR:
                        ioPermssn  = fsRdWrPerm;
                        ioDenyModes = MAC_PERMRD | MAC_PERMWR;
                        break;

                default:
                        errno = EINVAL;
                        return -1;
        }

        switch (shflag)
        {
                case _SH_DENYRD:
                        ioDenyModes |= MAC_DENYRD;
                        break;

                case _SH_DENYWR:
                        ioDenyModes |= MAC_DENYWR;
                        break;

                case _SH_DENYRW:
                        ioDenyModes |= MAC_DENYRD | MAC_DENYWR;
                        break;

                case _SH_DENYNO:
                        if (ioPermssn == fsRdWrPerm)
                        {
                                ioPermssn = fsRdWrShPerm;
                        }
                        break;

                default:
                        errno = EINVAL;
                        return -1;
        }

        if (!(oflag & _O_CREAT && oflag & _O_EXCL))
        {
                /* try to open the file */
                if (!__mopen(lpath, fh, ioPermssn, ioDenyModes))
                {
                        oflag &= ~_O_CREAT;     /*file open - no need to create*/
                }
        }

        /* Didn't work try creating the file if requested */
        if (oflag & _O_CREAT)
        {
                /* reset errno from mopen, since we can try create*/
                errno = 0;
                va_start(ap, shflag);
                pmode = va_arg(ap, int);
                pmode &= ~_umaskval;
                if (!(pmode & (_S_IREAD | _S_IWRITE)))
                {
                        errno = EINVAL;
                        return -1;
                }
                parm.fileParam.ioNamePtr = lpath;
                parm.fileParam.ioVRefNum = 0;
                osErr = PBCreateSync(&parm);
                if (!osErr)
                {
                        parm.fileParam.ioFDirIndex = 0;
                        PBGetFInfoSync(&parm);
                        parm.fileParam.ioFlFndrInfo.fdType = (_osfile[fh] & FTEXT ? 'TEXT' : '    ');
                        parm.fileParam.ioFlFndrInfo.fdCreator = '    ';
                        PBSetFInfoSync(&parm);
                }
                else
                {
                        if (osErr == dupFNErr && oflag & _O_EXCL)
                        {
                                errno = EEXIST; /*special case normally returns EACCES*/
                                _macerrno = osErr;
                        }
                        else
                        {
                                _dosmaperr(osErr);
                        }
                        return -1;
                }
                if (osErr = __mopen(lpath, fh, ioPermssn, ioDenyModes))
                {
                        _dosmaperr(osErr);
                        return -1;
                }
                else if (!(pmode & _S_IWRITE))
                {
                        PBSetFLockSync(&parm);
                }
        }
        if (!(_osfile[fh] & FOPEN))
        {
                goto ErrExit;
        }

        parm.ioParam.ioRefNum = _osfhnd[fh];

        /* Truncate file */
        if (oflag & _O_TRUNC)
        {
                parm.ioParam.ioMisc = 0;
                osErr = PBSetEOFSync(&parm);
                if (osErr)
                {
                        _dosmaperr(osErr);
                        goto ErrExit;
                }
        }

        /* get vol reference */
        parm.volumeParam.ioVolIndex = -1;
        parm.ioParam.ioNamePtr = lpath;
        parm.ioParam.ioVRefNum = 0;
        osErr = PBGetVInfoSync(&parm);
        if (osErr)
        {
                _dosmaperr(osErr);
                goto ErrExit;
        }
        _osVRefNum[fh] = parm.volumeParam.ioVRefNum;

        if (oflag & _O_APPEND)
        {
                _osfile[fh] |= FAPPEND;
        }

        if (oflag & _O_TEMPORARY)
        {
                _osfileflags[fh] |= FTEMP;
        }
        return fh;                      /* return handle */


ErrExit:
        if (_osfile[fh] & FOPEN)
        {
                PBCloseSync(&parm);
                _osfile[fh] = 0;
        }
        return -1;
}


#endif  /* _MAC */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线三级| 国产激情视频一区二区三区欧美 | 亚洲欧洲精品成人久久奇米网| 在线观看日韩毛片| 成人av网站在线观看| av不卡在线播放| 国产乱码精品一区二区三| 日本欧美韩国一区三区| 亚洲va欧美va天堂v国产综合| 国产精品全国免费观看高清| 精品噜噜噜噜久久久久久久久试看 | 久久久国产午夜精品| 91精品国产综合久久婷婷香蕉 | 精品国产免费视频| 欧美日韩情趣电影| 日韩欧美成人一区| 国产精品久久久久久户外露出| 日本精品视频一区二区| 欧美精品自拍偷拍动漫精品| 91精品国产全国免费观看| 欧美巨大另类极品videosbest | 99国产一区二区三精品乱码| 91女神在线视频| 欧美一区二区啪啪| 国产精品久久久久久久久搜平片| 一区二区三区免费网站| 久久国内精品视频| 欧美精品亚洲二区| 99久久国产综合精品色伊| 亚洲小少妇裸体bbw| 久久久久久久免费视频了| 欧美精品视频www在线观看| 国产一区二区三区黄视频 | 亚洲精品欧美激情| 秋霞电影一区二区| 大白屁股一区二区视频| 色婷婷亚洲婷婷| 日韩情涩欧美日韩视频| 亚洲视频一二三区| 韩日欧美一区二区三区| 99在线热播精品免费| 欧美伊人精品成人久久综合97| 久久精品视频网| 午夜激情一区二区三区| 成人午夜视频网站| 久久久99精品免费观看不卡| 亚洲一区二区在线播放相泽| 激情综合色综合久久| 欧美亚洲另类激情小说| 国产精品免费久久| eeuss鲁片一区二区三区| 国产丝袜在线精品| 国产在线不卡视频| 久久久www成人免费毛片麻豆 | 日韩一区二区三区在线| 视频一区二区欧美| 欧美日本韩国一区| 日日夜夜精品视频免费| 777奇米四色成人影色区| 亚洲v中文字幕| 欧美乱妇23p| 亚洲aaa精品| 欧美成人一级视频| 粉嫩一区二区三区性色av| 久久精品亚洲乱码伦伦中文| 国产专区欧美精品| 日韩美女久久久| 在线欧美小视频| 青娱乐精品视频| 日韩一区二区三区视频| 国产精品资源在线看| 亚洲日本青草视频在线怡红院| 色综合久久99| 肉色丝袜一区二区| 精品福利一区二区三区 | 国精产品一区一区三区mba视频| 精品久久久久久综合日本欧美| 不卡电影免费在线播放一区| 午夜婷婷国产麻豆精品| 国产亚洲1区2区3区| 欧美性感一类影片在线播放| 国产精品99久久久久久宅男| 亚洲成人一二三| 中文字幕亚洲视频| 国产欧美一区二区三区网站| 欧美福利视频一区| 在线观看日韩高清av| av亚洲精华国产精华精华 | 中文字幕一区二区三区色视频| 欧美老肥妇做.爰bbww视频| 韩国av一区二区三区| 蜜桃视频一区二区| 亚洲444eee在线观看| 国产午夜精品福利| 精品少妇一区二区三区在线播放 | heyzo一本久久综合| 国产曰批免费观看久久久| 日本视频在线一区| 亚洲综合999| 一区av在线播放| 午夜一区二区三区视频| 亚洲精品欧美综合四区| 一区二区三区免费观看| 18成人在线观看| 亚洲视频1区2区| 《视频一区视频二区| 国产精品女同互慰在线看| 国产精品女主播av| 亚洲自拍另类综合| 日本特黄久久久高潮| 免费av网站大全久久| 国产成人午夜电影网| 一本久久综合亚洲鲁鲁五月天| 国产精品小仙女| 欧美男女性生活在线直播观看| 在线观看亚洲a| 国产性做久久久久久| 亚洲欧美日韩在线| 国产一区二区视频在线| 精品视频色一区| 国产欧美中文在线| 国产成人av资源| 欧美一区二区三区电影| 亚洲日本护士毛茸茸| 国产乱码字幕精品高清av| 欧美精品日韩精品| 亚洲精品第1页| 成人一级片网址| 亚洲精品一区二区三区影院| 尤物av一区二区| 波多野结衣亚洲一区| 久久久久青草大香线综合精品| 亚洲a一区二区| 色成年激情久久综合| 日韩毛片高清在线播放| 极品尤物av久久免费看| 91精品国产综合久久久蜜臀粉嫩| 国产精品国产精品国产专区不蜜| 国产在线视频不卡二| 日韩精品在线一区| 亚洲最新视频在线观看| 91老司机福利 在线| 国产日韩av一区二区| 免费精品视频在线| 欧美一区二区在线视频| 亚洲男同1069视频| 色综合视频在线观看| 中文字幕一区免费在线观看| 成人av资源下载| 国产精品国产三级国产aⅴ中文 | 色综合久久久久综合体| 中文字幕成人av| 91亚洲大成网污www| 一区在线观看免费| 99国产精品久久| 亚洲一级二级在线| 日韩欧美在线影院| 成人免费福利片| 亚洲色图欧美偷拍| 欧美放荡的少妇| 白白色 亚洲乱淫| 久久99最新地址| 一区二区三区在线不卡| 欧美一级日韩免费不卡| 成人黄色在线看| 琪琪一区二区三区| 亚洲国产一区二区三区青草影视| 精品国产3级a| 日韩一区二区三区观看| av电影一区二区| 国产乱子伦视频一区二区三区| 在线观看一区二区精品视频| 韩国三级电影一区二区| 日韩av一区二区三区四区| 亚洲精品国产第一综合99久久| 国产亚洲成aⅴ人片在线观看| 中文在线一区二区| 国产精品日产欧美久久久久| 久久午夜电影网| 久久先锋影音av鲁色资源| 91精品国产欧美一区二区| 337p粉嫩大胆色噜噜噜噜亚洲 | 日韩欧美专区在线| 久久久久久久久久久久久女国产乱 | 国产电影一区二区三区| 国产成人精品三级| 在线免费精品视频| 日韩一级高清毛片| 中文字幕不卡一区| 午夜精品久久久久久久99樱桃| 久久精品久久99精品久久| 成人一区二区在线观看| 91国内精品野花午夜精品| 欧美一区二区三级| 中文在线一区二区| 丝瓜av网站精品一区二区| 风间由美一区二区三区在线观看 | 日韩限制级电影在线观看| 久久婷婷国产综合精品青草| 久久久久国产精品麻豆ai换脸|