我正在尝试将所有串行数据重定向到 VxWorks 中的一个进程。使用以下代码
fd = open("/tyCo/0", O_RDWR,0);
ioctl(fd, FIOSETOPTIONS, OPT_TERMINAL & ~OPT_7_BIT);
read(fd, line, 100);
给出正确的输入,除了输入的第一个字符没有填充,而是打印到终端。因此,如果我输入“Hello”,则会打印出“H”并且 line="ello"。如果我不输入任何内容并按回车键,我会收到来自 VxWorks Shell 的提示。
我认为 VxWorks Shell 正在截取数据的第一个字母。我的猜测是我必须仅将 STDIO 重定向到新进程,但我发现的所有文档都说使用 ioGlobalStdSet() ,这在 VxWorks 6.4 RTP 中不可用。如何重定向 STDIO 或从我的进程中终止 VxWorks Shell?