semb.c
来自「在TORNADO下写的基于VXWORKS的多信号量通信的源代码」· C语言 代码 · 共 46 行
C
46 行
#include "vxWorks.h"#include "semLib.h"SEM_ID semB_id;/* SEM_Q_FIFO (0x0) SEM_Q_PRIORITY (0x1) SEM_DELETE_SAFE (0x4) SEM_INVERSION_SAFE (0x8) SEM_EVENTSEND_ERR_NOTIFY (0x10)*/void semBTask(SEM_ID semId){ FOREVER { printf("[%s] task is waiting for a BINARY semaphore... -- loop\n",taskName(0)); if(semTake(semId,WAIT_FOREVER)==ERROR) { printErr("semTake failed\n"); } else { printf("[%s] task take a semaphore.\n",taskName(0)); printf(" I am doing something .....!!! \n\n"); taskDelay(300); } }}void testB(){ semB_id = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); printf("Semphore created!\n"); printf("semB_id = 0x%8x \n",semB_id); taskSpawn("semBTask",100,0,1000,semBTask,semB_id,2,3,4,5,6,7,8,9,0);}void giveB(){ semGive(semB_id);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?