📄 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 + -