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

📄 stdio_test.c.bak

📁 Tornado的源代码资源包
💻 BAK
字号:
#include "vxworks.h"
#include "tylib.h"

/*******************************************************************/
void stdio_test(void)
{
  int stdIN, stdOUT;              /* 标准输入/输出设备的文件描述符 */
  char c;                         /* 字符变量 */
  char nameBuf[20];               /* 字符串缓冲区 */
  char aStr[50];                  /* string buffer */

  /* 取标准输入/输出设备文件描述符 */
  stdIN  = ioGlobalStdGet(0);
  stdOUT = ioGlobalStdGet(1);

  /* 将标准输出设备输出模式设置为RAW */
  ioctl(stdOUT, FIOSETOPTIONS, OPT_RAW);

  /* 输出字串 */
  write(stdOUT, "\nstdio test\n\r", 13);

  /* device name display */
  ioctl(stdOUT, FIOGETNAME, (int)&(nameBuf));
/*
  write(stdOUT, "STD device name: ",17);
  write(stdOUT, nameBuf, sizeof(nameBuf));
  write(stdOUT, "\n\r", 2);
*/
  sprintf(&aStr, "STD device name: %s\n\r", nameBuf);
  write(stdOUT, aStr, sizeof(aStr));

  /* 主循环 */
  while(1)
  {
    /* 在标准输入设备等待键盘输入字符 */
    read(stdIN,&c,1);

    /* 判断若输入字符为"ESC键"则退出主循环 */
    if(c == '\e')
      break;

    /* 向标准输出设备输出刚接收的字符 */
    write(stdOUT,&c,1);

    /* 若为"回车"键,则后续输出"换行"键 */
    if(c == '\r')
      write(stdOUT,"\n",1);
  }

  /* 输出"end"字串 */
  write(stdOUT, "\n\rend\n\r", 7);

  /* 将标准输出设备输出模式设置为TERMINAL */
  ioctl (stdOUT, FIOSETOPTIONS, OPT_TERMINAL);
}


void test02(void)
{
  char key;
  int  cnt, tcnt;
  int  sysclkrate = sysClkRateGet();
  int  task_stdin_fd, global_stdin_fd;
  int  consoleFd;

/*  iosDevShow();
*/
  task_stdin_fd = ioTaskStdGet(0, STD_IN);
  global_stdin_fd = ioGlobalStdGet(STD_IN);
  consoleFd = global_stdin_fd;

  printf("TaskName: %s\n", taskName(0));
  printf("Task STDFDs: STD_IN:%d STD_OUT:%d\n",
         ioTaskStdGet(0, STD_IN),ioTaskStdGet(0, STD_OUT));
  printf("Global STDFDs: STD_IN:%d STD_OUT:%d\n",
         ioGlobalStdGet(STD_IN),ioGlobalStdGet(STD_OUT));
  ioctl (consoleFd, FIOSETOPTIONS, OPT_CRMOD);
  ioctl (consoleFd, FIOFLUSH, 0);
  tcnt = 0;
  FOREVER
  {
    printf("timer value: %03d\r", tcnt++);
    taskDelay(sysclkrate);
    ioctl (consoleFd, FIONREAD, (int) &cnt);
    if(cnt)
    {
      break;
    }
  }
  ioctl (consoleFd, FIOFLUSH, 0);
  ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);
  printf("\ntest02 end\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -