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讀取得到消息的剩餘部分。
我們注意到第二次讀取沒有收到任何數據!
這是爲什麼?