清空消息队列的缓存buffer

串口通信 

Unix终端I/O函数。作用:清空终端未完成的输入/输出请求及数据。
 
包含头文件:
1
#include <termios.h>
1
int tcflush(int fd, int queue_selector);
参数说明:[1] 
1
2
3
4
5
6
7
8
9
fd                // 终端I/O打开的句柄
 
queue_selector    // 控制tcflush的操作,取值为下面三个常数中的一个:
 
    TCIFLUSH  // 清除正收到的数据,且不会读取出来。
 
    TCOFLUSH  // 清除正写入的数据,且不会发送至终端。
 
    TCIOFLUSH // 清除所有正在发生的I/O数据。
返回值说明:
1
2
3
0     // 成功
 
-1    // 失败,并且为 errno 置值来指示错误

void CVirtualSerial::serial_flush(void)
{
if(this->m_fd!=-1) //serial_fd有效
{
tcflush(this->m_fd, TCIFLUSH);
tcflush(this->m_fd, TCOFLUSH);
}
}

消息队列

void MessageQueue::Destroy()
{
msgctl( msg_id, IPC_RMID, 0 );
}

原文地址:https://www.cnblogs.com/secondtononewe/p/7543405.html