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

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

?? rename.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
字號:
/***
*rename.c - rename file
*
*       Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       Defines rename() - rename a file
*
*******************************************************************************/

#ifndef _MAC

#include <cruntime.h>
#include <oscalls.h>
#include <internal.h>
#include <io.h>
#include <tchar.h>

/***
*int rename(oldname, newname) - rename a file
*
*Purpose:
*       Renames a file to a new name -- no file with new name must
*       currently exist.
*
*Entry:
*       _TSCHAR *oldname -      name of file to rename
*       _TSCHAR *newname -      new name for file
*
*Exit:
*       returns 0 if successful
*       returns not 0 and sets errno if not successful
*
*Exceptions:
*
*******************************************************************************/

int __cdecl _trename (
        const _TSCHAR *oldname,
        const _TSCHAR *newname
        )
{
        ULONG dosretval;

        /* ask OS to move file */

        if (!MoveFile((LPTSTR)oldname, (LPTSTR)newname))
            dosretval = GetLastError();
        else
            dosretval = 0;

        if (dosretval) {
            /* error occured -- map error code and return */
            _dosmaperr(dosretval);
            return -1;
        }

        return 0;
}

#else  /* _MAC */


#include <cruntime.h>
#include <internal.h>
#include <io.h>
#include <string.h>
#include <direct.h>
#include <errno.h>
#include <stdlib.h>
#include <macos\osutils.h>
#include <macos\files.h>
#include <macos\errors.h>

/***
*int rename(oldname, newname) - rename a file
*
*Purpose:
*       Renames a file to a new name -- no file with new name must
*       currently exist.
*
*Entry:
*       char *oldname -         name of file to rename
*       char *newname -         new name for file
*
*Exit:
*       returns 0 if successful
*       returns not 0 and sets errno if not successful
*
*Exceptions:
*
*******************************************************************************/
void __getdirandname(char *szdir, char *szname, const char *szpath);
int __srename ( const char *oldname, const char *newname);
int __accesspath (const char *dirname, const char *filename);

int __cdecl rename (
        const char *oldname,
        const char *newname
        )
{
        /* ask OS to move file */
        HParamBlockRec hparamBlock;
        char szOldName[32];       //old file name
        char szOldDir[256];       //old dir name
        char szNewName[32];       //new file name
        char szNewDir[256];       //new dir name
        char st[256];             //temp array for p-c string convertion
        char st2[256];            //temp array for p-c string conversion
        char szT[9];              //temp file name
        OSErr osErr;
        CMovePBRec cmovePB;
        int fTemp = 0;
        char *pch;
        char *pchOld;

        pchOld = strrchr(oldname, ':');
        if ( (pchOld!= NULL) && (*(pchOld+1) == '\0') &&
             (strchr(oldname, ':') == strrchr(oldname, ':')) )
        {
            /* rename a volume*/
            pch = strrchr(newname, ':');
            if (pch != NULL && *(pch+1) != '\0')
            {
                /* not rename to another volume name*/
                errno = EINVAL;
                return -1;
            }
            else if (pch != NULL && *(pch+1) == '\0')
            {
                osErr = __srename(oldname, newname);
                if (osErr)
                {
                    _dosmaperr(osErr);
                    return -1;
                }
                    return 0;
            }
            else if (pch == NULL)
            {
                strcpy(szNewName, newname);
                strcat(szNewName, ":");
                osErr = __srename(oldname, szNewName);
                if (osErr)
                {
                    _dosmaperr(osErr);
                    return -1;
                }
                return 0;
            }
        }

        /*Separate file name and directory*/
        __getdirandname(szOldDir, szOldName, oldname);
        __getdirandname(szNewDir, szNewName, newname);
        if (strcmp(szNewName, "")==0)
        {
            errno = EINVAL;
            return -1;
        }

        /*if same dir*/
        if (strcmp(szNewDir, szOldDir)==0 )
        {
            osErr = __srename(oldname, newname);
            if (osErr)
            {
                /* error occured -- map error code and return */
                _dosmaperr(osErr);
                return -1;
            }
            return 0;
        }

        /*if new directory didn't supplied, getcwd*/
        if (!*szNewDir)
        {
            _getcwd(szNewDir, 255);
        }


        /*if same name*/
        if (strcmp(szNewName, szOldName)==0 )
        {
            /*just move*/
            strcpy(st, oldname);
            strcpy(st2, szNewDir);
            cmovePB.ioNamePtr = _c2pstr(st);
            cmovePB.ioVRefNum = 0;
            cmovePB.ioNewName =_c2pstr(st2);
            cmovePB.ioNewDirID = 0;
            cmovePB.ioDirID = 0;
            osErr = PBCatMoveSync(&cmovePB);
            if (osErr)
            {
                /* error occured -- map error code and return */
                if (osErr == nsvErr || osErr == bdNamErr)
                {
                    errno = EXDEV;
                    _macerrno = osErr;
                }
                else
                    _dosmaperr(osErr);
                    return -1;
            }
                return 0;
        }

        osErr = __accesspath(szOldDir, szNewName);
        if (osErr != fnfErr)
        {
            /* rename the file to a temp name */
            strcpy(st, szOldDir);
            strcpy(szT, "fnXXXXXX");
            if (_mktemp(szT)!=NULL)
            {
                strcat(st, szT);
                fTemp = 1;
            }
        }
        else
        {
            *st='\0';
            if (*szOldDir)
            {
                strcpy(st, szOldDir);
            }
            strcat(st, szNewName);
        }
        osErr = __srename(oldname, st);
        if (osErr)
        {
            _dosmaperr(osErr);
            return -1;
        }

        strcpy(st2, szNewDir);
        /* move renamed file to new dir */
        cmovePB.ioNamePtr = _c2pstr(st);
        cmovePB.ioVRefNum = 0;
        cmovePB.ioNewName =_c2pstr(st2);
        cmovePB.ioNewDirID = 0;
        cmovePB.ioDirID = 0;
        osErr = PBCatMoveSync(&cmovePB);
        if (osErr) {
            /* error occured -- rename oldname back */
            strcpy(st2, oldname);
            hparamBlock.ioParam.ioNamePtr = st;
            hparamBlock.ioParam.ioVRefNum = 0;
            hparamBlock.ioParam.ioMisc = _c2pstr(st2);
            hparamBlock.fileParam.ioDirID = 0;
            PBHRenameSync(&hparamBlock);
            if (osErr == nsvErr || osErr == bdNamErr)
            {
                errno=EXDEV;
                _macerrno = osErr;
            }
            else
                _dosmaperr(osErr);
                return -1;
        }

        /* rename it to the new name in new dir*/
        if (fTemp)
        {
            strcpy(st, szNewDir);
            strcat(st, szT);
            osErr = __srename(st, newname);
            if (osErr)
            {
                _dosmaperr(osErr);
                remove(st);
                return -1;
            }
        }
        return 0;
}



void __getdirandname (
        char *szdir,
        char *szname,
        const char *szpath
        )
{
        char *pch;

        pch = strrchr(szpath, ':');
        if (pch)
        {
            strcpy(szname, pch+1);
            strncpy(szdir, szpath, (pch - szpath)+1);
            szdir[(pch-szpath)+1]='\0';
        }
        else //no ':'
        {
            strcpy(szname, szpath);
            *szdir = '\0';
        }
}

int __srename (
        const char *oldname,
        const char *newname
        )
{
        /* ask OS to move file */
        HParamBlockRec hparamBlock;
        char stOld[256];
        char stNew[256];
        OSErr osErr;

        strcpy(stOld, oldname);
        strcpy(stNew, newname);
        hparamBlock.ioParam.ioNamePtr = _c2pstr(stOld);
        hparamBlock.ioParam.ioVRefNum = 0;
        hparamBlock.ioParam.ioMisc = _c2pstr(stNew);
        hparamBlock.fileParam.ioDirID = 0;
        osErr = PBHRenameSync(&hparamBlock);
        return osErr;
}

int __accesspath (
        const char *dirname,
        const char *filename
        )
{
        CInfoPBRec cinfoPB;
        OSErr osErr;
        char szBuf[256];

        szBuf[0]='\0';
        if (*dirname)
        {
            strcpy(szBuf, dirname);
        }
        strcat(szBuf, filename);
        cinfoPB.hFileInfo.ioNamePtr = _c2pstr(szBuf);
        cinfoPB.hFileInfo.ioFDirIndex = 0;
        cinfoPB.hFileInfo.ioVRefNum = 0;
        cinfoPB.hFileInfo.ioDirID = 0;
        osErr = PBGetCatInfoSync(&cinfoPB);
        if (osErr)
        {
            return osErr;
        }
        else
        {
            /* file or dir ? */
            if (cinfoPB.hFileInfo.ioFlAttrib & 0x10)
            { /*dir*/
                return 1;
            }
            else
            {
                return 0;
            }
        }
}

#endif  /* _MAC */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产视频一区二区| 成人黄动漫网站免费app| 美腿丝袜亚洲综合| 色欧美日韩亚洲| 久久激情五月激情| 国产成人一级电影| 91麻豆精品国产91久久久更新时间 | 午夜av一区二区三区| 国产成人免费视| 在线综合视频播放| 一区二区三区产品免费精品久久75 | 国产69精品久久久久毛片| 欧美日韩中字一区| 亚洲美女少妇撒尿| eeuss鲁一区二区三区| www激情久久| 麻豆精品视频在线观看视频| 欧美日韩一区三区四区| 亚洲欧美一区二区三区久本道91 | 日韩不卡手机在线v区| 日本高清成人免费播放| 国产精品丝袜91| 成熟亚洲日本毛茸茸凸凹| 欧美大度的电影原声| 久久精品国产色蜜蜜麻豆| 欧美一级电影网站| 玖玖九九国产精品| 欧美va亚洲va香蕉在线| 精品无人码麻豆乱码1区2区| 欧美zozozo| 国产一区二区福利视频| 国产亚洲精品福利| 国产成人精品三级| 国产精品拍天天在线| 国产成人av资源| 欧美激情一区二区在线| 成人国产视频在线观看| 亚洲美女在线一区| 欧美三级视频在线| 美女久久久精品| 精品99一区二区三区| 国产乱人伦精品一区二区在线观看| 26uuu另类欧美亚洲曰本| 国产乱码精品一区二区三| 久久久久久久性| jizzjizzjizz欧美| 一区二区三区成人| 337p亚洲精品色噜噜| 久99久精品视频免费观看| 久久久久久免费毛片精品| 99热在这里有精品免费| 一区二区三区精品久久久| 91麻豆精品国产91| 国产91精品一区二区麻豆亚洲| 国产日韩精品一区二区三区在线| 粉嫩一区二区三区在线看 | 国产日韩欧美精品一区| 91丨九色porny丨蝌蚪| 亚洲成人激情综合网| 久久久亚洲精华液精华液精华液| 不卡在线观看av| 日韩成人av影视| 国产精品伦一区二区三级视频| 色综合天天综合网国产成人综合天 | 欧美精选在线播放| 国产成人综合网| 洋洋成人永久网站入口| 日韩一级免费观看| 99视频国产精品| 久久国内精品自在自线400部| 欧美国产精品久久| 欧美一区中文字幕| 99视频精品在线| 美国av一区二区| 亚洲美女区一区| 久久色在线观看| 欧美日产在线观看| 91丨九色丨蝌蚪丨老版| 久88久久88久久久| 亚洲丰满少妇videoshd| 欧美激情一区二区在线| 欧美一卡二卡在线| 色哟哟一区二区在线观看| 九九视频精品免费| 视频在线观看一区二区三区| 1区2区3区精品视频| 精品国产凹凸成av人网站| 欧美午夜免费电影| 成人av电影免费观看| 国产一区二区视频在线播放| 亚洲福利视频一区| 国产精品三级在线观看| 日韩欧美的一区| 欧美视频在线不卡| 在线亚洲+欧美+日本专区| 成人激情黄色小说| 懂色av一区二区三区免费观看| 麻豆成人综合网| 日韩国产成人精品| 午夜精品123| 亚洲成a人片综合在线| 人人爽香蕉精品| 亚洲va天堂va国产va久| 伊人夜夜躁av伊人久久| 中文字幕一区二区在线播放| 国产欧美一区二区三区在线看蜜臀 | 欧美一区二区三区免费视频| 欧美日韩一区精品| 欧美在线看片a免费观看| 色综合欧美在线| 91亚洲精品久久久蜜桃网站| 91亚洲国产成人精品一区二三 | 亚洲精品国产视频| 一区视频在线播放| 国产精品夫妻自拍| 国产精品毛片无遮挡高清| 欧美国产日韩a欧美在线观看| 国产夜色精品一区二区av| 久久精品男人天堂av| 国产日韩欧美综合一区| 国产精品嫩草99a| 国产精品日韩成人| 亚洲男同1069视频| 亚洲电影一级黄| 青娱乐精品视频| 韩国欧美国产1区| 成人一区二区三区视频| 91一区二区三区在线观看| 在线观看日韩高清av| 欧美剧在线免费观看网站| 日韩视频一区二区三区在线播放| 欧美成人女星排行榜| 中文字幕不卡在线观看| 亚洲精品少妇30p| 蜜臀久久久99精品久久久久久| 狠狠色综合日日| 99re这里都是精品| 欧美一区永久视频免费观看| 精品国产乱码久久久久久图片| 国产欧美一区二区三区在线看蜜臀| 亚洲三级电影网站| 五月婷婷久久丁香| 成人小视频免费观看| 欧美无乱码久久久免费午夜一区 | 欧美一区二区三区免费大片| 久久这里只有精品6| 亚洲精品综合在线| 美国欧美日韩国产在线播放| 粉嫩av一区二区三区| 欧美日韩精品一区二区三区四区 | 不卡一区中文字幕| 欧美另类videos死尸| 中文字幕欧美三区| 天堂久久久久va久久久久| 风间由美一区二区三区在线观看| 色国产综合视频| 久久精品视频一区二区| 亚洲国产精品一区二区www在线| 精品在线播放免费| 在线看国产一区| 久久精品视频一区| 天堂一区二区在线免费观看| 成人亚洲一区二区一| 日韩欧美中文字幕一区| 中文字幕一区二区三区乱码在线| 免费在线观看精品| 欧美丝袜丝nylons| 国产精品久久久久久久久久免费看| 奇米亚洲午夜久久精品| 色八戒一区二区三区| 国产精品网曝门| 激情av综合网| 337p亚洲精品色噜噜| 一区二区三区在线视频免费观看| 国产馆精品极品| 精品久久久影院| 午夜视频一区二区三区| 99国产精品国产精品久久| 久久综合九色综合97婷婷女人| 午夜激情一区二区| 欧美性videosxxxxx| 亚洲毛片av在线| 99精品久久只有精品| 国产精品午夜在线观看| 国产一区二区三区在线看麻豆| 欧美一区二区三区在线观看视频| 亚洲图片有声小说| 欧美怡红院视频| 亚洲图片欧美综合| 欧美优质美女网站| 一区二区三区色| 色综合久久久久| 亚洲卡通动漫在线| 色婷婷亚洲一区二区三区| 亚洲视频 欧洲视频| 91同城在线观看| 亚洲国产精品久久人人爱| 欧美在线你懂的| 午夜不卡av在线| 日韩欧美一级二级|