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

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

?? iolib.c

?? VxWorks操作系統(tǒng)內(nèi)核源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
        while (bytesToWrite > 0)            {            if ((bytesWritten = iosWrite (fd, pData, bytesToWrite)) == ERROR)                {                if (totalBytesWritten > 0)                    return (totalBytesWritten);                else                    return (ERROR);                }            totalBytesWritten += bytesWritten;            bytesToWrite -= bytesWritten;            pData += bytesWritten;            }        }    return (totalBytesWritten);    }/********************************************************************************* ioFullFileNameGet - resolve path name to device and full file name** This routine resolves the specified path name into a device and full* filename on that device.  If the specified path name is not a full,* absolute path name, then it is concatenated to the current default* path to derive a full path name.  This full path name is separated* into the device specification and the remaining filename on that device.* A pointer to the device header is returned in <ppDevHdr> and the* filename on that device is returned in <fullFileName>.** RETURNS:* OK, or* ERROR if the full filename has more than MAX_FILENAME_LENGTH characters.** NOMANUAL*/STATUS ioFullFileNameGet    (    char *	pathName,	/* path name */    DEV_HDR **		ppDevHdr,	/* ptr to dev hdr to complete */    char *		fullFileName	/* resulting complete filename */    )    {    char *pTail;    char fullPathName [MAX_FILENAME_LENGTH];    bzero (fullPathName, MAX_FILENAME_LENGTH);  /* initialize buffer to 0 */    /* resolve default path plus partial pathname to full path name */    if (pathCat (ioDefPath, pathName, fullPathName) == ERROR)	return (ERROR);    /* remove device name from full path name */    if ((*ppDevHdr = iosDevFind (fullPathName, &pTail)) == NULL)	return (ERROR);    strncpy (fullFileName, pTail, MAX_FILENAME_LENGTH);    return (OK);    }/********************************************************************************* ioDefPathSet - set the current default path** This routine sets the default I/O path.  All relative pathnames specified* to the I/O system will be prepended with this pathname.  This pathname* must be an absolute pathname, i.e., <name> must begin with an existing* device name.** RETURNS:* OK, or ERROR if the first component of the pathname is not an existing* device.** SEE ALSO: ioDefPathGet(), chdir(), getcwd()*/STATUS ioDefPathSet    (    char *name          /* name of the new default device and path */    )    {    char *pTail = name;    if (iosDevFind (name, &pTail) == NULL)	return (ERROR);    if (pTail == name)	{	/* name does not begin with an existing device's name */	errnoSet (S_ioLib_NO_DEVICE_NAME_IN_PATH);	return (ERROR);	}    if (strlen (name) >= MAX_FILENAME_LENGTH)	{	errnoSet (S_ioLib_NAME_TOO_LONG);	return (ERROR);	}    strcpy (ioDefPath, name);    return (OK);    }/********************************************************************************* ioDefPathGet - get the current default path** This routine copies the name of the current default path to <pathname>.* The parameter <pathname> should be MAX_FILENAME_LENGTH characters long.** RETURNS: N/A** SEE ALSO: ioDefPathSet(), chdir(), getcwd()*/void ioDefPathGet    (    char *pathname              /* where to return the name */    )    {    strcpy (pathname, ioDefPath);    }/********************************************************************************* chdir - set the current default path** This routine sets the default I/O path.  All relative pathnames specified* to the I/O system will be prepended with this pathname.  This pathname* must be an absolute pathname, i.e., <name> must begin with an existing* device name.** RETURNS:* OK, or ERROR if the first component of the pathname is not an existing device.** SEE ALSO: ioDefPathSet(), ioDefPathGet(), getcwd()*/STATUS chdir    (    char *pathname      /* name of the new default path */    )    {    return (ioDefPathSet (pathname));    }/********************************************************************************* getcwd - get the current default path (POSIX)** This routine copies the name of the current default path to <buffer>.* It provides the same functionality as ioDefPathGet() and* is provided for POSIX compatibility.** RETURNS:* A pointer to the supplied buffer, or NULL if <size> is too small to hold* the current default path.** SEE ALSO: ioDefPathSet(), ioDefPathGet(), chdir()*/char *getcwd    (    char *buffer,       /* where to return the pathname */    int  size           /* size in bytes of buffer      */    )    {    if (size <= 0)	{	errnoSet (EINVAL);	return (NULL);	}    if (size < strlen (ioDefPath) + 1)	{	errnoSet (ERANGE);	return (NULL);	}    strcpy (buffer, ioDefPath);    return (buffer);    }/********************************************************************************* getwd - get the current default path** This routine copies the name of the current default path to <pathname>.* It provides the same functionality as ioDefPathGet() and getcwd().* It is provided for compatibility with some older UNIX systems.** The parameter <pathname> should be MAX_FILENAME_LENGTH characters long.** RETURNS: A pointer to the resulting path name.*/char *getwd    (    char *pathname      /* where to return the pathname */    )    {    strcpy (pathname, ioDefPath);    return (pathname);    }/********************************************************************************* ioDefPathCat - concatenate to current default path** This routine changes the current default path to include the specified* <name>.  If <name> is itself an absolute pathname beginning with* a device name, then it becomes the new default path.  Otherwise <name>* is appended to the current default path in accordance with the rules* of concatenating path names.** RETURNS:* OK, or* ERROR if a valid pathname cannot be derived from the specified name.** NOMANUAL*/STATUS ioDefPathCat    (    char *name          /* path to be concatenated to current path */    )    {    char newPath [MAX_FILENAME_LENGTH];    char *pTail;    /* interpret specified path in terms of current default path */    if (pathCat (ioDefPath, name, newPath) == ERROR)	return (ERROR);    /* make sure that new path starts with a device name */    iosDevFind (newPath, &pTail);    if (pTail == newPath)	{	errnoSet (S_ioLib_NO_DEVICE_NAME_IN_PATH);	return (ERROR);	}    pathCondense (newPath);	/* resolve ".."s, "."s, etc */    strncpy (ioDefPath, newPath, MAX_FILENAME_LENGTH);    return (OK);    }/********************************************************************************* ioDefDevGet - get current default device** This routine copies the name of the device associated with the current* default pathname to <devName>.** NOTE: This routine was public in 4.0.2 but is obsolete.  It is made* no-manual in 5.0 and should be removed in the next release.** NOMANUAL*/void ioDefDevGet    (    char *devName               /* where to return the device name */    )    {    DEV_HDR *pDevHdr;	/* pointer to device header */    char *pTail;    /* find the device of the default pathname */    if ((pDevHdr = iosDevFind (ioDefPath, &pTail)) == NULL)	{	*devName = EOS;		/* no default device, return null device name */	}    else	{	strcpy (devName, pDevHdr->name);	/* return device name */	}    }/********************************************************************************* ioDefDirGet - get current default directory** This routine copies the current default directory to <dirName>.* The current default directory is derived from the current default* pathname minus the leading device name.** <dirname> should be MAX_FILENAME_LENGTH characters long.** NOTE: This routine was public in 4.0.2 but is obsolete.  It is made* no-manual in 5.0 and should be removed in the next release.** NOMANUAL*/void ioDefDirGet    (    char *dirName               /* where to return the directory name */    )    {    char *pTail;    /* find the directory name in the default path name */    if (iosDevFind (ioDefPath, &pTail) == NULL)	{	*dirName = EOS;	/* no default device, return null directory name */	}    else	{	strcpy (dirName, pTail);	}    }/********************************************************************************* ioGlobalStdSet - set the file descriptor for global standard input/output/error** This routine changes the assignment of a specified global standard file* descriptor <stdFd> (0, 1, or, 2) to the specified underlying file* descriptor <newFd>.  <newFd> should be a file descriptor open to the* desired device or file.  All tasks will use this new assignment when doing* I/O to <stdFd>, unless they have specified a task-specific standard file* descriptor (see ioTaskStdSet()).  If <stdFd> is not 0, 1, or 2, this* routine has no effect.** RETURNS: N/A** SEE ALSO: ioGlobalStdGet(), ioTaskStdSet()*/void ioGlobalStdSet    (    int stdFd,  /* std input (0), output (1), or error (2) */    int newFd   /* new underlying file descriptor          */    )    {    if (STD_VALID (stdFd))	ioStdFd [stdFd] = newFd;    }/********************************************************************************* ioGlobalStdGet - get the file descriptor for global standard input/output/error** This routine returns the current underlying file descriptor for global * standard input, output, and error.** RETURNS:* The underlying global file descriptor, or ERROR if <stdFd> is not 0, 1, or 2.** SEE ALSO: ioGlobalStdSet(), ioTaskStdGet()*/int ioGlobalStdGet    (    int stdFd   /* std input (0), output (1), or error (2) */    )    {    return (STD_VALID (stdFd) ? ioStdFd [stdFd] : ERROR);    }/********************************************************************************* ioTaskStdSet - set the file descriptor for task standard input/output/error** This routine changes the assignment of a specified task-specific standard* file descriptor <stdFd> (0, 1, or, 2) to the specified underlying file* descriptor<newFd>.  <newFd> should be a file descriptor open to the* desired device or file.  The calling task will use this new assignment* when doing I/O to <stdFd>, instead of the system-wide global assignment* which is used by default.  If <stdFd> is not 0, 1, or 2, this routine has* no effect.** NOTE: This routine has no effect if it is called at interrupt level.** RETURNS: N/A** SEE ALSO: ioGlobalStdGet(), ioTaskStdGet()*/void ioTaskStdSet    (    int taskId, /* task whose std fd is to be set (0 = self) */    int stdFd,  /* std input (0), output (1), or error (2)   */    int newFd   /* new underlying file descriptor            */    )    {    WIND_TCB *pTcb;    if (STD_VALID (stdFd) && (pTcb = taskTcb (taskId)) != NULL)	pTcb->taskStd [stdFd] = newFd;    }/********************************************************************************* ioTaskStdGet - get the file descriptor for task standard input/output/error** This routine returns the current underlying file descriptor for task-specific* standard input, output, and error.** RETURNS:* The underlying file descriptor, or ERROR if <stdFd> is not 0, 1, or 2, or* the routine is called at interrupt level.** SEE ALSO: ioGlobalStdGet(), ioTaskStdSet()*/int ioTaskStdGet    (    int taskId, /* ID of desired task (0 = self)           */    int stdFd   /* std input (0), output (1), or error (2) */    )    {    WIND_TCB *pTcb;    int taskFd;    if (STD_VALID (stdFd) && (pTcb = taskTcb (taskId)) != NULL)	{	taskFd = pTcb->taskStd [stdFd];	if (STD_VALID (taskFd))	    return (ioStdFd [taskFd]);	else	    return (taskFd);	}    return (ERROR);    }/********************************************************************************* isatty - return whether the underlying driver is a tty device** This routine simply invokes the ioctl() function FIOISATTY on the* specified file descriptor.** RETURNS: TRUE, or FALSE if the driver does not indicate a tty device.*/BOOL isatty    (    int fd      /* file descriptor to check */    )    {    return (ioctl (fd, FIOISATTY, 0 /*XXX*/) == TRUE);    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡在线观看| 久久久亚洲综合| 国产黄色成人av| 性做久久久久久| 国产精品毛片久久久久久久| 欧美一卡2卡三卡4卡5免费| av激情成人网| 亚洲天天做日日做天天谢日日欢 | 国产黄色91视频| 亚洲国产欧美一区二区三区丁香婷| 欧美一卡2卡三卡4卡5免费| 色88888久久久久久影院野外| 麻豆精品新av中文字幕| 亚洲一区二区三区四区中文字幕 | 国模冰冰炮一区二区| 蜜桃视频第一区免费观看| 日韩欧美高清一区| 欧美日韩美少妇| 播五月开心婷婷综合| 国内精品视频一区二区三区八戒 | 国产在线日韩欧美| 天天操天天干天天综合网| 中文字幕一区二区三区精华液 | 蜜臀久久久久久久| 亚洲成人综合网站| 亚洲国产色一区| 一区二区三区在线观看国产 | 国产亚洲精品aa| 久久综合网色—综合色88| 日韩欧美一区二区不卡| 欧美精品1区2区3区| 欧美日韩国产成人在线免费| 在线视频国产一区| 欧洲一区二区av| 欧美日韩在线三区| 欧美三级电影网站| 欧美日韩国产首页| 欧美日韩不卡一区二区| 欧美另类久久久品| 69堂亚洲精品首页| 日韩一级视频免费观看在线| 91麻豆精品91久久久久久清纯 | 91久久国产综合久久| 91网站最新地址| 日本高清不卡一区| 欧美艳星brazzers| 欧美人动与zoxxxx乱| 欧美日韩国产精品成人| 欧美一区二区三区免费在线看| 日韩三级高清在线| 久久九九久久九九| 亚洲欧洲三级电影| 中文欧美字幕免费| 亚洲精品中文在线观看| 亚洲国产成人porn| 蜜臀久久久99精品久久久久久| 韩国三级中文字幕hd久久精品| 国产精品一线二线三线精华| 成a人片国产精品| 91免费观看视频| 91福利在线播放| 在线播放国产精品二区一二区四区| 宅男在线国产精品| 久久夜色精品一区| 一区视频在线播放| 午夜影院久久久| 激情综合网激情| 成人高清视频免费观看| 在线观看不卡一区| 精品国产百合女同互慰| 国产精品色在线观看| 亚洲一区二区三区四区在线 | 亚洲欧美影音先锋| 丝袜亚洲另类欧美综合| 国产黄色精品网站| 欧美亚洲高清一区二区三区不卡| 日韩欧美美女一区二区三区| 国产人成一区二区三区影院| 亚洲国产va精品久久久不卡综合| 久久国产精品露脸对白| 成人的网站免费观看| 91精品国产色综合久久不卡蜜臀| 久久午夜色播影院免费高清| 一区二区三区中文字幕电影| 免费成人小视频| 色就色 综合激情| 久久婷婷成人综合色| 亚洲欧美乱综合| 激情综合亚洲精品| 色吊一区二区三区 | 日韩黄色免费电影| 成人激情图片网| 欧美一级国产精品| 亚洲男同性视频| 成人在线视频一区| 91精品在线免费| 亚洲你懂的在线视频| 国产一本一道久久香蕉| 欧美三级蜜桃2在线观看| 国产精品网站一区| 麻豆传媒一区二区三区| 欧美在线免费播放| 国产精品无码永久免费888| 日本美女一区二区三区视频| 99vv1com这只有精品| 久久久综合九色合综国产精品| 亚洲18影院在线观看| 一本高清dvd不卡在线观看| 国产亚洲午夜高清国产拍精品| 日韩精品国产欧美| 色狠狠一区二区三区香蕉| 国产欧美视频在线观看| 蜜臀久久久久久久| 欧美日本免费一区二区三区| 亚洲男同性视频| 91麻豆精东视频| 国产精品嫩草影院com| 久久成人18免费观看| 欧美精选一区二区| 亚洲第一搞黄网站| 欧美亚洲精品一区| 亚洲日本韩国一区| av中文字幕一区| 国产精品网站一区| 丁香婷婷综合色啪| 国产亚洲欧美日韩日本| 精品一区二区三区免费视频| 欧美大片在线观看一区二区| 麻豆成人久久精品二区三区红| 欧美日本乱大交xxxxx| 亚洲国产精品欧美一二99| 欧美网站一区二区| 亚洲亚洲人成综合网络| 欧美三级中文字幕| 亚洲线精品一区二区三区| 一本色道a无线码一区v| 亚洲激情av在线| 91国在线观看| 亚洲一区二区三区国产| 欧美性生活影院| 石原莉奈在线亚洲二区| 7777精品伊人久久久大香线蕉| 奇米一区二区三区| 精品久久久久av影院| 精品在线免费视频| 久久蜜桃av一区精品变态类天堂 | 精品亚洲成a人在线观看| 日韩视频国产视频| 国产一区欧美二区| 国产精品卡一卡二卡三| 一本一道波多野结衣一区二区| 亚洲图片欧美综合| 9191久久久久久久久久久| 久久不见久久见免费视频7| 久久久久国产成人精品亚洲午夜 | 欧美日韩一区二区三区免费看| 香蕉加勒比综合久久| 欧美α欧美αv大片| 成人黄页在线观看| 亚洲精品亚洲人成人网| 91.xcao| 国产成人久久精品77777最新版本| 中文字幕在线不卡视频| 欧美人妖巨大在线| 国产一区 二区| 一区二区视频免费在线观看| 欧美一区二区在线免费播放 | 国产成人丝袜美腿| 一区二区三区精密机械公司| 欧美精品v日韩精品v韩国精品v| 另类调教123区 | 国产日韩亚洲欧美综合| 色女孩综合影院| 美日韩一区二区三区| 国产精品免费看片| 欧美精品一二三四| 成人午夜av影视| 日韩国产在线观看| 国产精品视频麻豆| 7777精品伊人久久久大香线蕉超级流畅| 国模无码大尺度一区二区三区 | 久久激情五月婷婷| 国产精品白丝在线| 91麻豆精品国产91久久久久久 | 欧美一区在线视频| 成人午夜av影视| 日韩精品电影在线| 亚洲欧洲成人自拍| 精品国产伦一区二区三区观看方式| 91麻豆国产在线观看| 国产一区二区三区观看| 亚洲一二三四在线| 久久精品亚洲麻豆av一区二区| 欧美色中文字幕| 成av人片一区二区| 国产精品亚洲综合一区在线观看| 午夜一区二区三区视频| 国产精品久久久久久久蜜臀| 26uuu色噜噜精品一区二区| 欧美日韩视频在线观看一区二区三区|