终端I/O之波特率函数

波特率(baud rate)是一个以往采用的术语,现在它指的是"位/秒"(bits per second)。虽然大多数终端设备对输入和输出使用同一波特率,但是只要硬件许可,可以将它们设置为两个不同值。

#include <termios.h>

 

speed_t cfgetispeed(const struct termios *termptr);

speed_t cfgetospeed(const struct termios *termptr);

两个函数的返回值:波特率值

 

int cfsetispeed(struct termios *termptr, speed_t speed);

int cfsetospeed(struct termios *termptr, speed_t speed);

两个函数的返回值:若成功则返回0,出错则返回-1

BB

两个cfget函数的返回值,以及两个cfset函数的speed参数都是下列常量之一:B50、B70、B110、B134、B150、B200、B300、B600、B1200、B1800、B2400、B4800、B9600、B19200或B38400。常量B0表示"挂断"。在调用tcsetattr时,如若将输出波特率指定为B0,则调制解调器的控制线就不再起作用。

大多数系统定义了另外 的波特率值,例如B57600以及B115200。

使用这些函数时,应当理解输入、输出波特率是存放在图18-3(http://www.cnblogs.com/nufangrensheng/p/3575752.html)所示的设备termios结构中的。在调用任一cfget函数之前,先要用tcgetattr获得设备的termios结构。与此类似,在调用任一cfset函数后,应将波特率设置到termios结构中。为使这种更改影响到设备,应当调用tcsetattr函数。如果所设置的波特率有错,则在调用tcsetattr之前,不会发现这种错误。

这4个波特率函数使应用程序不必考虑具体实现在termios结构中表示波特率的不同方法。

posted @ 2014-03-02 14:25  ITtecman  阅读(1159)  评论(0编辑  收藏  举报