0
我正在使用管道在两个vxWorks任务之间传输信息。为什么在使用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读取得到消息的剩余部分。
我们注意到第二次读取没有收到任何数据!
这是为什么?