📄 c07a_stdio.c
字号:
/* 头文件 */
#include "VxWorks.h"
#include "ioLib.h"
#include "semLib.h"
/* 全局变量 */
SEM_ID semSync; /* 用于同步的信号量 */
/******************************************************************
*
* taskA – A进行任务级重定向
*
* taskA对标准输出进行任务级重定向,并向向标准输出文件写数据。
*
* RETURNS: N/A
*/
void taskA(void)
{
semSync = semBCreate(SEM_Q_FIFO, SEM_EMPTY);
write(STD_OUT, "\n[taskA] Before taskA call ioTaskStdSet()", 50);
ioTaskStdSet(taskIdSelf(), STD_OUT, 4); /* 进行任务级重定向 */
write(STD_OUT, "\n[taskA] After taskA call ioTaskStdSet()", 50);
semTake(semSync, WAIT_FOREVER); /* 等待taskB做系统重定向*/
write(STD_OUT, "\n[taskA] After taskB call ioGlobalStdSet()",50);
return;
}
/******************************************************************
*
* taskB – B进行系统级重定向
*
* taskB对标准输出进行系统级重定向,并向向标准输出文件写数据。
*
* RETURNS: N/A
*/
void taskB(void)
{
write(STD_OUT,"\n[taskB] After taskA call ioTaskStdSet()", 40);
ioGlobalStdSet(STD_OUT, 3); /* 进行系统级重定向 */
semGive(semSync); /* 释放信号量,taskA继续 */
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -