⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c07a_stdio.c

📁 Tornado的源代码资源包
💻 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 + -