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

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

?? loglib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
* EXAMPLE* If the following code were executed by task 20:* .CS*     {*     name = "GRONK";*     num = 123;**     logMsg ("ERROR - name = %s, num = %d.\en", name, num, 0, 0, 0, 0);*     }* .CE* the following error message would appear on the system log:* .CS*     0x180400 (t20): ERROR - name = GRONK, num = 123.* .CE** RETURNS: The number of bytes written to the log queue,* or EOF if the routine is unable to write a message.** SEE ALSO: printf(), logTask()*/int logMsg    (    char *fmt,  /* format string for print */    int arg1,   /* first of six required args for fmt */    int arg2,    int arg3,    int arg4,    int arg5,    int arg6    )    {    int timeout;    LOG_MSG msg;    if (INT_CONTEXT ())	{	msg.id = -1;	timeout = NO_WAIT;	}    else	{	msg.id = taskIdSelf ();	timeout = WAIT_FOREVER;	}    msg.fmt    = fmt;    msg.arg[0] = arg1;    msg.arg[1] = arg2;    msg.arg[2] = arg3;    msg.arg[3] = arg4;    msg.arg[4] = arg5;    msg.arg[5] = arg6;    if (msgQSend (logMsgQId, (char *) &msg, sizeof (msg), timeout,		  MSG_PRI_NORMAL) != OK)	{	++logMsgsLost;	return (EOF);	}    return (sizeof (msg));    }/********************************************************************************* logFdSet - set the primary logging file descriptor** This routine changes the file descriptor where messages from logMsg() * are written, allowing the log device to be changed from the default* specified by logInit().  It first removes the old file descriptor (if * one had been previously set) from the log file descriptor list, then * adds the new <fd>.** The old logging file descriptor is not closed or affected by this call; * it is simply no longer used by the logging facilities.** RETURNS: N/A** SEE ALSO: logFdAdd(), logFdDelete()*/void logFdSet    (    int fd      /* file descriptor to use as logging device */    )    {    static int oldLogFd = NONE;    if (oldLogFd != NONE)	logFdDelete (oldLogFd);    /* if we are called from an rlogin session, remove pty fd from log fd list */    if (logFdFromRlogin != NONE)	{	logFdDelete (logFdFromRlogin);	logFdFromRlogin = NONE;		/* reset since its deleted from list */	}    if (logFdAdd (fd) == OK)	oldLogFd = fd;    else	oldLogFd = NONE;    }/********************************************************************************* logFdAdd - add a logging file descriptor** This routine adds to the log file descriptor list another file descriptor* <fd> to which messages will be logged.  The file descriptor must be a * valid open file descriptor.** RETURNS:* OK, or ERROR if the allowable number of additional logging file descriptors* (5) is exceeded.** SEE ALSO: logFdDelete()*/STATUS logFdAdd    (    int fd      /* file descriptor for additional logging device */    )    {    semTake (&logFdSem, WAIT_FOREVER);    if ((numLogFds + 1) > MAX_LOGFDS)	{	semGive (&logFdSem);	/* XXX errnoSet (S_logLib_TOO_MANY_LOGGING_FDS); */	return (ERROR);	}    logFd [numLogFds++] = fd;    semGive (&logFdSem);    return (OK);    }/********************************************************************************* logFdDelete - delete a logging file descriptor** This routine removes from the log file descriptor list a logging file * descriptor added by logFdAdd().  The file descriptor is not closed; but is* no longer used by the logging facilities.** RETURNS:* OK, or ERROR if the file descriptor was not added with logFdAdd().** SEE ALSO: logFdAdd()*/STATUS logFdDelete    (    int fd      /* file descriptor to stop using as logging device */    )    {    FAST int ix;    FAST int jx;    semTake (&logFdSem, WAIT_FOREVER);    for (ix = jx = 0; ix < numLogFds; ix++, jx++)	{	/* shift array of logFd's after deleting unwanted fd */	if (((logFd [jx] = logFd [ix]) == fd) && ix == jx)	    jx--;	}    if (ix == jx)	{	semGive (&logFdSem);	return (ERROR);		/* didn't find specified fd */	}    numLogFds--;    semGive (&logFdSem);    return (OK);    }/********************************************************************************* logTask - message-logging support task** This routine prints the messages logged with logMsg().  It waits on a* message queue and prints the messages as they arrive on the file descriptor* specified by logInit() (or a subsequent call to logFdSet() or logFdAdd()).** This task is spawned by logInit().** RETURNS: N/A** SEE ALSO: logMsg()*/void logTask (void)    {    static int oldMsgsLost;    int newMsgsLost;	/* used in case logMsgsLost is changed during use */    LOG_MSG msg;    char *checkName;    FOREVER	{	if (msgQReceive (logMsgQId, (char *) &msg, sizeof (msg),			 WAIT_FOREVER) != sizeof (msg))	    lprintf ("logTask: error reading log messages.\n", 0, 0, 0, 0, 0,0);	else	    {	    /* print task ID followed by caller's message */	    /* print task ID */	    if (msg.id == -1)		{		lprintf ("interrupt: ", 0, 0, 0, 0, 0, 0);		}	    else		{		if ((checkName = taskName (msg.id)) == NULL)		    lprintf ("%#x (): task dead", msg.id, 0, 0, 0, 0, 0);		else		    lprintf ("%#x (%s): ", msg.id, (int)checkName, 0, 0, 0, 0);		}	    if (msg.fmt == NULL)		lprintf ("<null \"fmt\" parameter>\n", 0, 0, 0, 0, 0, 0);	    else		{		lprintf (msg.fmt, msg.arg[0], msg.arg[1], msg.arg[2],				  msg.arg[3], msg.arg[4], msg.arg[5]);		}	    }	/* check for any more messages lost */	newMsgsLost = logMsgsLost;	if (newMsgsLost != oldMsgsLost)	    {	    lprintf ("logTask: %d log messages lost.\n",		     newMsgsLost - oldMsgsLost, 0, 0, 0, 0, 0);	    oldMsgsLost = newMsgsLost;	    }	}    }/********************************************************************************* lprintf - log printf** Performs an fdprintf on all logFds.*/LOCAL void lprintf    (    char *fmt,	/* format string for print */    int arg1,	/* optional arguments to fmt */    int arg2,    int arg3,    int arg4,    int arg5,    int arg6     )    {    FAST int ix;    semTake (&logFdSem, WAIT_FOREVER);    for (ix = 0; ix < numLogFds; ix++)	fdprintf (logFd [ix], fmt, arg1, arg2, arg3, arg4, arg5, arg6);    semGive (&logFdSem);    }/********************************************************************************* logShow - show active logging fd's (debug only)** NOMANUAL*/void logShow (void)    {    FAST int ix;    printf ("%3s %3s\n", "num", "fd");    printf ("%3s %3s\n", "---", "--");    for (ix = 0; ix < numLogFds; ix++)	printf ("%3d %3d\n", ix, logFd [ix]);    /* XXX timeout, message size, ...    msgQShow (logMsgQId, 1);    */    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩福利视频导航| 亚洲一卡二卡三卡四卡| 国产精品国产三级国产普通话99| 884aa四虎影成人精品一区| 久久久五月婷婷| 婷婷开心激情综合| 蜜桃久久久久久| 美女尤物国产一区| 色综合中文字幕| 精品国产sm最大网站免费看| 亚洲aⅴ怡春院| 99久精品国产| 色妞www精品视频| 久久蜜臀中文字幕| 毛片av中文字幕一区二区| 91成人在线免费观看| 久久人人爽人人爽| 久久精品久久99精品久久| 国产一区二区伦理| 91精品欧美福利在线观看 | 日本一区二区三区在线不卡| 日韩主播视频在线| 欧美日韩三级视频| 久久女同性恋中文字幕| 中文字幕免费不卡| 亚洲精品国产无套在线观| 国产99精品视频| 久久精品男人的天堂| 久久国产精品免费| 精品国产不卡一区二区三区| 六月丁香婷婷久久| 波波电影院一区二区三区| 久久精品人人爽人人爽| 狠狠色伊人亚洲综合成人| 欧美mv和日韩mv国产网站| 免费成人美女在线观看.| 欧美人妖巨大在线| 青草国产精品久久久久久| 日韩午夜激情视频| 激情图片小说一区| 国产农村妇女精品| 日本最新不卡在线| 欧美变态凌虐bdsm| 国产suv精品一区二区三区| 国产精品视频一二| 在线亚洲人成电影网站色www| 26uuu亚洲综合色| 成人午夜又粗又硬又大| 欧美三级电影精品| 日本亚洲三级在线| 国产亚洲精品免费| 99国产精品久久久久| 亚洲一区二区三区精品在线| 欧美少妇bbb| 九一久久久久久| 国产精品色哟哟网站| 在线看日韩精品电影| 天天综合天天综合色| 欧美精品一区二区三区蜜臀| 粉嫩一区二区三区在线看| 亚洲女同一区二区| 欧美一区二区三区公司| 国产激情精品久久久第一区二区| 91精品欧美综合在线观看最新| 一区二区三区波多野结衣在线观看| 国产成人免费网站| 亚洲精品ww久久久久久p站| 5566中文字幕一区二区电影| 亚洲精品国久久99热| 日韩欧美一卡二卡| 日本伊人精品一区二区三区观看方式| 94-欧美-setu| 午夜精品爽啪视频| 国产欧美va欧美不卡在线 | 日韩精品一区二区三区中文精品| 亚洲综合免费观看高清完整版在线| 成人美女在线观看| 亚洲成人激情自拍| 国产日韩在线不卡| 欧美日韩视频一区二区| 亚洲小说欧美激情另类| 精品99999| 欧美视频中文字幕| 日韩av网站在线观看| 国产精品久久久久久久久久久免费看 | 国产精品一区二区不卡| 精品sm捆绑视频| 色婷婷综合在线| 国产一区二区在线电影| 亚洲午夜电影网| 国产精品久久久久久久久果冻传媒| 成人免费的视频| 亚洲欧美一区二区在线观看| 日韩欧美亚洲国产另类| 久久99热国产| 亚洲成年人网站在线观看| 国产精品美女久久福利网站| 日韩一区二区视频| 国产精品1024| 麻豆精品蜜桃视频网站| 日本女人一区二区三区| 精品久久久久久最新网址| 欧美日韩综合在线免费观看| 色美美综合视频| 91一区二区在线观看| 成人午夜电影久久影院| 国产精品1区2区3区在线观看| 中文字幕中文字幕在线一区| 久久久亚洲国产美女国产盗摄| 94-欧美-setu| 91视频国产资源| 91麻豆精东视频| 91在线码无精品| 一本色道a无线码一区v| av网站一区二区三区| 日本亚洲视频在线| 天堂久久一区二区三区| 亚洲午夜久久久| 天天做天天摸天天爽国产一区| 精品粉嫩超白一线天av| 91丨porny丨最新| 一本大道综合伊人精品热热| 成人ar影院免费观看视频| caoporn国产精品| 色先锋资源久久综合| 在线观看国产一区二区| 欧美日本韩国一区二区三区视频| 国产风韵犹存在线视精品| 国产精品亚洲第一区在线暖暖韩国 | 日韩一区欧美一区| 日韩免费一区二区| 欧美网站大全在线观看| 91精品在线一区二区| 欧美mv日韩mv国产| 中文字幕精品在线不卡| 亚洲免费av高清| 亚洲bt欧美bt精品777| 极品少妇xxxx偷拍精品少妇| 夜夜精品视频一区二区| 午夜久久久影院| 国产一区二区三区黄视频| 成人高清视频在线| 欧美少妇一区二区| 久久青草欧美一区二区三区| 中文字幕中文在线不卡住| 欧美成人性战久久| 国产精品久线观看视频| 亚洲一区二区三区四区在线观看 | 亚洲欧美另类图片小说| 亚洲国产精品一区二区久久恐怖片 | 一区二区三区欧美在线观看| 日产欧产美韩系列久久99| 亚洲国产裸拍裸体视频在线观看乱了 | 中文字幕五月欧美| 国产欧美一区二区在线| 亚洲综合激情另类小说区| 久久国产欧美日韩精品| av中文字幕亚洲| 欧美一级二级三级蜜桃| 国产精品日韩精品欧美在线| 亚洲亚洲精品在线观看| 国产成人精品三级麻豆| 欧美日韩综合在线免费观看| 国产亚洲精品久| 欧美激情一区在线观看| 天天综合天天做天天综合| 国产福利一区二区三区| 欧美日韩高清一区二区三区| 欧美韩日一区二区三区四区| 免费在线观看精品| 色婷婷综合久久久久中文| 2023国产精品| 奇米影视在线99精品| 欧美在线观看禁18| 国产精品久久久久久久久图文区| 国产视频一区在线播放| 亚洲成人在线网站| 欧美a级理论片| 在线视频欧美区| 欧美日韩国产一级二级| 亚洲色图.com| 国产精品一卡二卡在线观看| 欧美精品视频www在线观看| 日韩一区有码在线| 成人福利视频网站| 久久久久久久久免费| 蜜臀国产一区二区三区在线播放| 蜜乳av一区二区| 国产精品一区二区在线看| 在线电影国产精品| 亚洲女同女同女同女同女同69| 亚洲一区二区三区四区在线观看| 视频一区欧美日韩| 91福利资源站| 亚洲男人的天堂在线aⅴ视频| 日韩在线a电影| 日本韩国欧美在线| 99热99精品| 中文字幕亚洲精品在线观看| 成人av免费在线观看|