すべてのシリアル データを 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 シェルからプロンプトが表示されます。
VxWorks シェルがデータの最初の文字を傍受していると思います。私の推測では、STDIO を新しいプロセスのみにリダイレクトする必要がありますが、私が見つけたすべてのドキュメントでは、VxWorks 6.4 RTP では使用できない ioGlobalStdSet() を使用するように指示されています。STDIO をリダイレクトするか、プロセスから VxWorks シェルを強制終了するにはどうすればよいですか?