📄 goodprog.c
字号:
/* goodProg.c - fixes badProg.c */#include "vxWorks.h"#include "semLib.h"#include "stdio.h"#include "taskLib.h"#include "sysLib.h"void foo(char flag);LOCAL SEM_ID semId;STATUS startFoo (char *pPrintStr) { char flag; flag = *pPrintStr; if (semId == NULL) { if ((semId = semMCreate (SEM_Q_PRIORITY | SEM_DELETE_SAFE | SEM_INVERSION_SAFE)) == NULL) { perror ("semMCreate failed"); return ERROR; } } if (taskSpawn ("tFoo", 200, 0, 5000, (FUNCPTR) foo, flag, 0,0,0,0,0,0,0,0,0) == ERROR) { perror ("taskSpawn failed"); return (ERROR); } taskDelay (sysClkRateGet () * 5); return (OK); }void foo (char flag) { FOREVER { if (semTake (semId, WAIT_FOREVER) == ERROR) { perror ("semTake failed"); return; } if (flag == 'y') printf ("Critical nonsense...\n"); semGive (semId); taskDelay (sysClkRateGet() * 3); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -