tcflush(int fd, int queue_selector) //对以写但未发出，或已接收但未读数据的flush.
discards data written to the object referred to by fd but not transmitted, or data received but not read, depending on the value of
flushes data received but not read.
flushes data written but not transmitted.
flushes both data received but not read, and data written but not transmitted.
tcgetattr(int fd, struct termios *termios_p) //get串口termios结构
gets the parameters associated with the object referred by fd and stores them in the termios structure referenced by termios_p. This function may be invoked from a background process; however, the terminal attributes may be subsequently changed by a foreground
tcsetattr(int fd, int optional_actions, const struct termios *termios_p) //设置串口termios结构
sets the parameters associated with the terminal (unless support is required from the underlying hardware that is not available) from the termios structure referred to by termios_p. optional_actions specifies when the changes take effect:
the change occurs immediately.
the change occurs after all output written to fd has been transmitted. This function should be used when changing parameters that affect output.
the change occurs after all output written to the object referred by fd has been transmitted, and all input that has been received but not read will be discarded before the change is made.