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

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

?? nfslib.c

?? vxworks操作系統(tǒng)源代碼_對于在vxworks環(huán)境下開發(fā)軟件的人員非常有用
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if ((newDirName = (char *) alloca (nfsMaxPath)) == NULL)	return (ERROR);    if ((oldDirName = (char *) alloca (nfsMaxPath)) == NULL)	return (ERROR);    bzero ((char *) &dirResults, sizeof (dirResults));    bzero ((char *) &status, sizeof (status));    pathSplit (oldName, oldDirName, oldFileName);    pathSplit (newName, newDirName, newFileName);    bcopy ((char *) pOldDirHandle, (char *) &renameArgs.from.dir,	   sizeof (nfs_fh));    renameArgs.from.name = oldFileName;    if (newDirName [0] == EOS)	{	/* NULL directory name */	bcopy ((char *) pMountHandle, (char *) &renameArgs.to.dir,	       sizeof (nfs_fh));	}    else	{	if (nfsLookUpByName (hostName, newDirName, pMountHandle,			     &dirResults, &dummyDirHandle) != OK)	    return (ERROR);	bcopy ((char *) &dirResults.diropres_u.diropres.file,	       (char *) &renameArgs.to.dir, sizeof (nfs_fh));	}    renameArgs.to.name = newFileName;    if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, NFSPROC_RENAME,			    xdr_renameargs, (char *) &renameArgs,			    xdr_nfsstat, (char *) &status) == ERROR)	{	return (ERROR);	}    if (status != NFS_OK)	{	nfsErrnoSet (status);	return (ERROR);	}    return (OK);    }/********************************************************************************* nfsThingCreate - creates file or directory** RETURNS:  OK | ERROR | FOLLOW_LINK,*	    if FOLLOW_LINK, then fullFileName contains the name of the link** NOMANUAL*/int nfsThingCreate    (    char *      hostName,    char *      fullFileName,   /* name of thing being created */    nfs_fh *    pMountHandle,   /* mount device's file handle */    diropres *  pDirOpRes,      /* ptr to returned direc. operation results */    nfs_fh *    pDirHandle,     /* ptr to returned file's directory file hndl */    u_int       mode            /* mode that file or dir is created with                                 *   UNIX chmod style */    )    {    FAST int	status;    char *	newName;              /* new name if name contained a link */    char *	dirName;              /* dir where file will be created */    char	fileName[NAME_MAX + 1];	   /* name of file without path */    char *	tmpName;	      /* temporary file name */    FAST sattr *pSattr;			/* ptr to attributes */    diropres	lookUpResult;    createargs	createArgs;    nfs_fh	dummyDirHandle;    u_int	nfsProc;		/* which nfs procedure to call,					 * depending on whether a file or					 * directory is made */    if (nfsInit () != OK)	return (ERROR);    if ((newName = (char *) alloca (nfsMaxPath)) == NULL)	return (ERROR);    if ((dirName = (char *) alloca (nfsMaxPath)) == NULL)	return (ERROR);    /* Extra 4 characters allocated for '/../' */    if ((tmpName = (char *) alloca (nfsMaxPath + 1 + 3)) == NULL)	return (ERROR);    bzero ((char *) &createArgs, sizeof (createArgs));    bzero ((char *) &lookUpResult, sizeof (lookUpResult));    bzero ((char *) pDirOpRes, sizeof (diropres));    pathSplit (fullFileName, dirName, fileName);    status = nfsLookUpByName (hostName, dirName, pMountHandle, &lookUpResult,			      &dummyDirHandle);    if (status == FOLLOW_LINK)	{	if ((strlen (dirName) + strlen (fileName) + 1) >= nfsMaxPath)	    {	    errnoSet (S_ioLib_NAME_TOO_LONG);	    status = ERROR;	    }	else	    {	    pathCat (dirName, fileName, newName);	    (void) strcpy (fullFileName, newName);	    }	}    if (status != OK)	return (status);    bcopy ((char *) &lookUpResult.diropres_u.diropres.file,	   (char *) &createArgs.where.dir, sizeof (nfs_fh));    bcopy ((char *) &lookUpResult.diropres_u.diropres.file,	   (char *) pDirHandle, sizeof (nfs_fh));    createArgs.where.name = fileName;    pSattr = &createArgs.attributes;    if (mode == 0)    	/* create a file with default permissions */	pSattr->mode = NFS_FSTAT_REG | DEFAULT_FILE_PERM;    else	pSattr->mode = mode;    /* don't set these attributes */    pSattr->uid = pSattr->gid = pSattr->size = -1;	/* user ID */    pSattr->atime.seconds = pSattr->atime.useconds = -1;    pSattr->mtime.seconds = pSattr->mtime.useconds = -1;    if (mode & NFS_FSTAT_DIR)	nfsProc = NFSPROC_MKDIR;    else        nfsProc = NFSPROC_CREATE;    if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, nfsProc,			    xdr_createargs, (char *) &createArgs,			    xdr_diropres, (char *) pDirOpRes) == ERROR)	{	return (ERROR);	}    /*     * If the file created is really a symlink, then change the name and     * return FOLLOW_LINK     */    if (pDirOpRes->diropres_u.diropres.attributes.type == NFLNK)        {	strcpy (tmpName, fullFileName);	/* Make a copy of fullFileName to					 * use with nfsLinkGet */	nfsLinkGet (hostName, &pDirOpRes->diropres_u.diropres.file, tmpName);        /*	 * Need to replace last element of fullFileName with return value from         * nfsLinkGet.  Add /../newFileName to fullFileName, call         * pathCondense().	 */	strcpy (fullFileName, tmpName);	return (FOLLOW_LINK);	}    if (pDirOpRes->status != NFS_OK)	{	nfsErrnoSet (pDirOpRes->status);	return (ERROR);	}    return (OK);    }/********************************************************************************* nfsFileWrite - write to a file** Either all characters will be written, or there is an ERROR.** RETURNS:  number of characters written | ERROR** NOMANUAL*/int nfsFileWrite    (    char *      hostName,    nfs_fh *    pHandle,        /* file handle of file being written to */    unsigned    offset,         /* current byte offset in file */    unsigned    count,          /* number of bytes to write */    char *      data,           /* data to be written (up to NFS_MAXDATA) */    fattr *     pNewAttr    )    {    FAST unsigned nWrite = 0;	      /* bytes written in one nfs write */    FAST unsigned nTotalWrite = 0;    /* bytes written in all writes together */    writeargs	writeArgs;	      /* arguments to pass to nfs server */    attrstat	writeResult;	      /* info returned from nfs server */    if (nfsInit () != OK)	return (ERROR);    bzero ((char *) &writeArgs, sizeof (writeArgs));    bcopy ((char *) pHandle, (char *) &writeArgs.file, sizeof (nfs_fh));    /* set offset into file where write starts */    writeArgs.offset = offset;    while (nTotalWrite < count)	{	/* can only write up to NFS_MAXDATA bytes in one nfs write */	if (count - nTotalWrite > nfsMaxMsgLen)	    nWrite = nfsMaxMsgLen;	else	    nWrite = count - nTotalWrite;	writeArgs.totalcount = nWrite;	writeArgs.data.data_len = nWrite;	writeArgs.data.data_val = data + nTotalWrite;	writeArgs.offset = offset + nTotalWrite;	bzero ((char *) &writeResult, sizeof (attrstat));	if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, NFSPROC_WRITE,				xdr_writeargs, (char *) &writeArgs,				xdr_attrstat, (char *) &writeResult) == ERROR)	    {	    return (ERROR);	    /* XXX if some writes have been done and there was an error,	     * nTotalWrite should be returned */	    }	if (writeResult.status != NFS_OK)	    {	    nfsErrnoSet (writeResult.status);	    return (ERROR);	    }	nTotalWrite += nWrite;	}    bcopy ((char *) &writeResult.attrstat_u.attributes, (char *) pNewAttr,	   sizeof (fattr));    /* if nfs write returned ok, then all bytes were written */    return (count);    }/********************************************************************************* nfsFileRead - read from a file** Reads as many bytes as are requested if that many bytes are left before* the end of file.** RETURNS: number of characters read or ERROR** NOMANUAL*/int nfsFileRead    (    char *      hostName,    nfs_fh *    pHandle,        /* file handle of file being read */    unsigned    offset,         /* start at offset bytes from beg. of file */    unsigned    count,          /* number bytes to read up to */    char *      buf,            /* buffer that data is read into */    fattr *     pNewAttr        /* arguments returned from server */    )    {    FAST unsigned nRead = 0;		/* number of bytes read in one read */    FAST unsigned nTotalRead = 0;	/* bytes read in all reads together */    readargs	readArgs;		/* arguments to pass to nfs server */    readres	readReply;    if (nfsInit () != OK)	return (ERROR);    bzero ((char *) &readArgs, sizeof (readArgs));    bcopy ((char *) pHandle, (char *) &readArgs.file, sizeof (nfs_fh));    while (nTotalRead < count)	{	if (count - nTotalRead > nfsMaxMsgLen)	    readArgs.count = nfsMaxMsgLen;	else	    readArgs.count = count - nTotalRead;	readArgs.offset = offset + nTotalRead;	bzero ((char *) &readReply, sizeof (readReply));	/* make xdr buffer point to caller's buffer */	readReply.readres_u.reply.data.data_val = buf + nTotalRead;	if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, NFSPROC_READ,				xdr_readargs, (char *) &readArgs,				xdr_readres, (char *) &readReply) == ERROR)	    {	    return (ERROR);	    }	if (readReply.status != NFS_OK)	    {	    nfsErrnoSet (readReply.status);	    return (ERROR);	    }	/* check for end of file (data_len == 0) */	if ((nRead = readReply.readres_u.reply.data.data_len) == 0)	    break;	/* update attributes */	bcopy ((char *) &(readReply.readres_u.reply.attributes),	       (char *) pNewAttr, sizeof (fattr));	nTotalRead += nRead;	} /* while not all bytes requested have been read */    return (nTotalRead);    }/********************************************************************************* nfsLinkGet - gets name of real file from a symbolic link** RETURNS: OK or ERROR*/LOCAL STATUS nfsLinkGet    (    char *      hostName,    nfs_fh *    pHandle,        /* file handle of file being read */    nfspath     realPath        /* the actual pathname gets returned here */    )    {    readlinkres	pathStatus;    if (nfsInit () != OK)	return (ERROR);    bzero ((char *) &pathStatus, sizeof (readlinkres));    /* make xdr buffer point to caller's buffer */    pathStatus.readlinkres_u.data = realPath;    if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, NFSPROC_READLINK,			    xdr_nfs_fh, (char *) pHandle,			    xdr_readlinkres, (char *) &pathStatus) == ERROR)	{	return (ERROR);	}    if (pathStatus.status != NFS_OK)	{	nfsErrnoSet (pathStatus.status);	return (ERROR);	}    return (OK);    }#if 0/********************************************************************************* nfsDirRead - read entries from a directory** RETURNS: OK or ERROR*/LOCAL STATUS nfsDirRead    (    char *      hostName,    nfs_fh *    pDirHandle,    nfscookie   cookie,         /* hand this cookie to the server.  The cookie                                 * marks a place in the directory where entries                                 * are to be read from */    unsigned    count,          /* number of bytes that nfs may return */    readdirres *pReadDirRes     /* return the results of directory read here */    )    {    readdirargs readDirArgs;    if (nfsInit () != OK)	return (ERROR);    bzero ((char *) &readDirArgs, sizeof (readdirargs));    bcopy ((char *) pDirHandle, (char *) &readDirArgs.dir, sizeof (nfs_fh));    bcopy (cookie, readDirArgs.cookie, sizeof (nfscookie));    readDirArgs.count = count;    bzero ((char *) pReadDirRes, sizeof (*pReadDirRes));    if (nfsClientCall (hostName, NFS_PROGRAM, NFS_VERSION, NFSPROC_READDIR,			    xdr_readdirargs, (char *) &readDirArgs,			    xdr_readdirres, (char *) pReadDirRes) == ERROR)	{	return (ERROR);	}    if (pReadDirRes->status != NFS_OK)	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久噜噜噜久久中文字幕色伊伊| 日本女优在线视频一区二区| 国产伦精品一区二区三区免费迷| 欧美猛男gaygay网站| 亚洲欧美另类综合偷拍| 日本电影亚洲天堂一区| 亚洲电影一区二区| 91精品国产综合久久小美女| 五月天国产精品| 精品久久久久久久久久久院品网 | 日韩中文欧美在线| 欧美一区二区三区影视| 麻豆精品视频在线观看免费| 91麻豆精品91久久久久久清纯| 日本欧美韩国一区三区| 久久婷婷成人综合色| 日韩亚洲欧美高清| 免费观看91视频大全| 久久久久久免费网| 色婷婷av一区二区| 久久精品国产免费| 亚洲欧洲三级电影| 日韩一区二区免费高清| 日日嗨av一区二区三区四区| 欧美日韩国产一级二级| 91麻豆精品国产91久久久久| 国内精品久久久久影院一蜜桃| 久久久久久免费| 欧美伦理影视网| 成人的网站免费观看| 视频一区二区中文字幕| 成人av一区二区三区| 欧美视频中文一区二区三区在线观看| 日韩国产高清在线| 日本一区二区视频在线| 精品久久久久一区二区国产| 欧美日韩激情一区二区三区| 国产精品亚洲а∨天堂免在线| 五月天丁香久久| 亚洲国产成人av好男人在线观看| 久久在线免费观看| 欧美一级片在线| 国产一区在线精品| 日韩vs国产vs欧美| 欧美一级久久久久久久大片| 国产一区 二区 三区一级| 午夜伦欧美伦电影理论片| 一区二区免费看| 午夜成人免费电影| 免费看日韩精品| 国产精品一卡二| 成人黄色综合网站| 一本大道av一区二区在线播放| 91免费版在线| 欧美另类变人与禽xxxxx| 在线不卡免费av| 精品精品国产高清a毛片牛牛| 欧美精品一区二区三区在线| 91精品国产色综合久久不卡蜜臀 | 精品久久久久久久久久久久久久久久久| 欧美精选在线播放| 精品电影一区二区| 亚洲欧美一区二区在线观看| 一区二区三区蜜桃网| 轻轻草成人在线| 不卡在线视频中文字幕| 欧美性大战久久久| 国产亚洲一区字幕| 视频一区视频二区在线观看| 亚洲欧美精品午睡沙发| 免费三级欧美电影| 国产成人精品网址| 欧美电影一区二区三区| 中文字幕在线免费不卡| 天堂在线一区二区| 色老综合老女人久久久| 久久看人人爽人人| 午夜精品一区二区三区三上悠亚| 成人综合日日夜夜| 26uuu色噜噜精品一区| 亚洲国产视频在线| 91网址在线看| 国产精品你懂的| 国产高清久久久| 精品国产乱码久久久久久久| 国产精品免费视频一区| 久久精品国产秦先生| 3751色影院一区二区三区| 亚洲男女毛片无遮挡| 不卡的av网站| 亚洲男人天堂av| 色综合久久88色综合天天免费| 亚洲国产精品激情在线观看 | 欧洲亚洲国产日韩| 亚洲色图20p| 97se狠狠狠综合亚洲狠狠| 欧美国产1区2区| a级精品国产片在线观看| 国产日韩欧美一区二区三区乱码 | 久久久精品中文字幕麻豆发布| 日韩高清在线电影| 精品成a人在线观看| 国产成人av电影在线| 国产精品久久久久aaaa樱花| av午夜一区麻豆| 亚洲国产成人porn| 日韩精品一区二区三区视频| 国产不卡视频在线观看| 精品美女一区二区| 亚洲成人黄色小说| 欧美电视剧在线看免费| 亚洲人成精品久久久久| 欧美体内she精高潮| 亚洲欧美激情在线| 欧美午夜精品电影| 国产美女在线观看一区| 国产精品久久综合| 91精品国产综合久久久久久| 成人中文字幕在线| 天天操天天色综合| 国产精品欧美一级免费| 欧美裸体bbwbbwbbw| 91麻豆swag| 国产麻豆精品一区二区| 亚洲一区av在线| 亚洲国产岛国毛片在线| 日韩免费一区二区| 欧美日韩中文字幕一区| 成人激情免费网站| 亚洲激情六月丁香| 欧美sm美女调教| 欧美男女性生活在线直播观看 | 亚洲欧美日韩小说| 久久色在线观看| 国产精品一二三区| 日本一不卡视频| 日韩欧美一卡二卡| 丁香亚洲综合激情啪啪综合| ●精品国产综合乱码久久久久| 懂色av中文字幕一区二区三区 | 亚洲摸摸操操av| 色av一区二区| 成人动漫一区二区三区| 日韩av不卡一区二区| 亚洲精品视频一区| 亚洲欧美日韩国产综合在线| 久久综合狠狠综合久久激情| 欧美亚洲高清一区| 在线免费精品视频| 成人h动漫精品| 国产精品中文字幕日韩精品 | 国产精品无圣光一区二区| 欧美日韩在线不卡| 亚洲黄色片在线观看| 一区二区三区在线看| 久久久久国产精品麻豆| 精品国产网站在线观看| 精品国产污网站| 久久九九99视频| 国产色爱av资源综合区| 国产精品网站在线播放| 国产精品婷婷午夜在线观看| 中文字幕一区在线观看| 亚洲美女少妇撒尿| 久久99精品久久久久久国产越南| 日本欧美在线观看| 国产在线看一区| 国产精品影音先锋| 白白色亚洲国产精品| 99久久综合狠狠综合久久| 欧洲激情一区二区| 欧美色网一区二区| 久久天天做天天爱综合色| 中文字幕一区av| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美韩国日本综合| 国产亚洲欧美一级| 亚洲视频一区二区在线观看| 欧美国产精品v| 免费精品视频在线| 色综合久久88色综合天天6| 欧美精品乱码久久久久久按摩| 国产人成亚洲第一网站在线播放| 国产精品欧美一级免费| 美腿丝袜亚洲综合| 日本精品裸体写真集在线观看| 911精品国产一区二区在线| 国产精品久久久久影院亚瑟| 奇米精品一区二区三区在线观看| 成人午夜又粗又硬又大| 91精品国产一区二区三区| 有码一区二区三区| 国产毛片精品视频| 日韩三级电影网址| 午夜一区二区三区在线观看| 波多野结衣在线aⅴ中文字幕不卡| 91麻豆精品久久久久蜜臀 | 欧美mv日韩mv亚洲| 蓝色福利精品导航| 欧美一级免费观看|