標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
POSIX.1 |
両方 |
#define _POSIX_SOURCE
#include <termios.h>
speed_t cfgetospeed(const struct termios *termptr);
*termptr が示す termios 構造体から 出力ボー・レートを取り出します。termios 構造体には、端末に関する情報が 入っています。プログラムでは、最初に tcgetattr() を使用 して termios 構造体を取得し、次に cfgetospeed() を使用して その構造体から速度を取り出すようにしてください。これにより、プログラムは cfgetospeed() を使用してその構造体に 新しいボー・レートを設定し、tcsetattr() を使用して変更値をシステムに 渡すことができます。
z/OS®UNIX アプリケーションでは、cfsetospeed() を使用して有効な 速度を設定し、tcsetattr() を使用してその速度をシステムに渡すことが できますが、その速度は疑似端末の命令に影響しません。しかし、命令が OCS リモート端末に対して発行された場合は、その命令 に影響があります。
cfgetospeed() は、ボー・レートを示すコードを戻します。これらのコードは、termios.h ヘッダー・ファイルに定義されていて、符号なし整数型です。表 1 は、ボー・レートを設定するコードを 示します。
文書化される errno 値はありません。
⁄* 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