c07a_stdio.c

来自「Tornado的源代码资源包」· C语言 代码 · 共 49 行

C
49
字号

/* 头文件 */
#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 + =
减小字号Ctrl + -
显示快捷键?