[Previous]
[Contents]
[Next]

cfsetospeed()

set the output baud rate in a termios structure

Synopsis:

#include <termios.h>
int cfsetospeed( struct termios *termios_p,
                 speed_t speed );

Description:

The cfsetospeed() function sets the output baud rate within the termios structure pointed to by termios_p to be speed. Valid values for speed are defined in <termios.h>.

A valid termios control structure for an opened device can be obtained using the tcgetattr() function.


Note:
  • The new baud rate isn't effective until tcsetattr() is called with this modified termios structure.
  • Attempts to set baud rates to values not supported by the hardware are ignored, and cause tcsetattr() to return an error, but cfsetospeed() doesn't indicate an error.

Setting the output baud rate to B0 causes the connection to be dropped by causing the modem control lines to be turned off.

Returns:

0
success
-1
an error occurred; errno indicates the reason.

Errors:

EINVAL
One of the arguments is invalid.
ENOTTY
This function isn't supported by the system.

Examples:

#include <termios.h>
#include <fcntl.h>
#include <unistd.h>

int main( void )
  {
    int fd;
    struct termios termios_p;
    speed_t speed;

    fd = open( "/dev/ser1", O_RDWR );
    tcgetattr( fd, &termios_p);

    /* Set output baud rate */
    speed = B9600;
    cfsetospeed( &termios_p, speed );
    tcsetattr( fd, TCSADRAIN, &termios_p);

    close( fd );
    return (EXIT_SUCCESS);
  }

Classification:

POSIX 1003.1

Safety:
Interrupt handler Yes
Signal handler Yes
Thread Yes

See also:

cfgetispeed(), cfgetospeed(), cfsetispeed(), errno, tcgetattr(), tcsetattr()


[Previous]
[Contents]
[Next]