我有一个串行程序通过两个不同的端口连接到两个设备。每当我阅读时,当然我有一个本地缓冲区,静态分配了我愿意从串行读取的数据包大小。然而,我的老板指出,将数据包存储到这个本地缓冲区并不安全,而是建议每次从串行读取时检查是否可以刷新 linux OS 缓冲区。你有什么意见?以及如何在 ubuntu 中以编程方式做到这一点?
如果我将 TCSAFLUSH 添加到 tcsetattr 函数,我认为这个问题会得到解决。这使得它在所有数据都写入串行后刷新缓冲区。这发生在下一次阅读之前。希望如果我睡了()一段时间;)如果你的意见呢?