パイプを使用して、2 つの vxWorks タスク間で情報を転送しています。
コードサンプルは次のとおりです。
Init()
{
fd = open("/pipe/mydev", O_RDWR, 0777);
...
}
taskRx()
{
...
len = read(fd, rxbuf, MAX_RX_LEN);
...
}
taskTx()
{
...
len = write(fd, txbuf, txLen);
...
}
MAX_RX_LEN よりも長いメッセージを送信する場合 (つまり、txLen > MAX_RX_LEN)、メッセージの残りを取得するために 2 回の読み取りを行います。
私たちが気付いたのは、2 回目の読み取りでデータがまったく受信されていないことです。
何故ですか?