Standards / Extensions | C or C++ | Dependencies |
---|---|---|
POSIX.1 |
both |
#define _POSIX_SOURCE
#include <termios.h>
speed_t cfgetospeed(const struct termios *termptr);
Extracts the output baud rate from the termios structure indicated by *termptr. The termios structure contains information about a terminal. A program should first use tcgetattr() to get the termios structure, and then use cfgetospeed() to extract the speed from the structure. The program can then use cfgetospeed() to set a new baud rate in the structure and tcsetattr() to pass the changed value to the system.
Although in a z/OS® UNIX application valid speeds can be set with cfsetospeed() and passed to the system with tcsetattr(), the speed has no effect on the operation a pseudoterminal. However, the operation will have an effect if issued for an OCS remote terminal.
cfgetospeed() returns a code indicating the baud rate. The codes are defined in the termios.h header file and have an unsigned integer type. Table 1 shows the codes to set the baud rate.
There are no documented errno values.
⁄* CELEBC06
This example determines the speed of stdout.
*⁄
#define _POSIX_SOURCE
#include <termios.h>
#include <stdio.h>
char *see_speed(speed_t speed) {
static char SPEED[20];
switch (speed) {
case B0: strcpy(SPEED, "B0");
break;
case B50: strcpy(SPEED, "B50");
break;
case B75: strcpy(SPEED, "B75");
break;
case B110: strcpy(SPEED, "B110");
break;
case B134: strcpy(SPEED, "B134");
break;
case B150: strcpy(SPEED, "B150");
break;
case B200: strcpy(SPEED, "B200");
break;
case B300: strcpy(SPEED, "B300");
break;
case B600: strcpy(SPEED, "B600");
break;
case B1200: strcpy(SPEED, "B1200");
break;
case B1800: strcpy(SPEED, "B1800");
break;
case B2400: strcpy(SPEED, "B2400");
break;
case B4800: strcpy(SPEED, "B4800");
break;
case B9600: strcpy(SPEED, "B9600");
break;
case B19200: strcpy(SPEED, "B19200");
break;
case B38400: strcpy(SPEED, "B38400");
break;
default: sprintf(SPEED, "unknown (%d)", (int) speed);
}
return SPEED;
}
main() {
struct termios term;
speed_t speed;
if (tcgetattr(1, &term) != 0)
perror("tcgetattr() error");
else {
speed = cfgetospeed(&term);
printf("cfgetospeed() says the speed of stdout is %s\n",
see_speed(speed));
}
}
cfgetospeed() says the speed of stdout is B0