清空消息队列的缓存buffer
串口通信
Unix终端I/O函数。作用:清空终端未完成的输入/输出请求及数据。
包含头文件:
1
|
#include <termios.h> |
函数原型:
1
|
int tcflush( int fd, int queue_selector); |
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 );
}