Я пытаюсь перенаправить все последовательные данные в процесс в VxWorks. Используя следующий кодRedirect VxWorks Последовательный вход
fd = open("/tyCo/0", O_RDWR,0);
ioctl(fd, FIOSETOPTIONS, OPT_TERMINAL & ~OPT_7_BIT);
read(fd, line, 100);
дает правильный вход, за исключением первого символа введенного не заполняется, но выводится на терминал. Поэтому, если я введу «Привет», напечатано «H», а line = «ello». Если я ничего не введу и ударяю ключ возврата, я получаю приглашение от VxWorks Shell.
Я думаю, что оболочка VxWorks перехватывает первую букву данных. Я предполагаю, что мне нужно перенаправить STDIO только на новый процесс, но все найденное мной documentation говорит о том, что он использует ioGlobalStdSet(), который недоступен в VxWorks 6.4 RTP. Как я могу либо перенаправить STDIO, либо убить VxWorks Shell из моего процесса?