Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)

No.2242  cygwin の termios.h について
発言者: TOMOYUKI
発言日: 2004 06/09 10:11
 
お世話になります。SunOS で作成されたシリアル通信プログラムを cygwin 環境に移植しているところです。
そのため、ioctl 関数や read 関数、write 関数などを使用します。また、このとき、termio 構造体を使って通信設定をするのですが、その中に以下のような (PENDIN) 設定をしているところがあります。これをコメントアウトしない限り、cygwin では、コンパイルエラーになります。termios.h を調べてみると、POSIX では定義されていないものでした。しかし、これを設定しない限り read 関数が失敗してしまいます。これに代わる設定方法をご存知のかたいませんか。

-------------------------------------------------------
#include <stdio.h>
#include <fcntl.h>
#include <termio.h>

struct termio termio_dis;
char rs[2];
char rd[2];
int stream;

stream = open("/dev/ttyS0", O_WRONLY);
ioctl(stream, TCGETA, &termio_dis);
termio_dis.c_cflag = B9600 | CS8 | CREAD;
termio_dis.c_iflag = IGNBRK;
termio_dis.c_oflag = OPOST;
termio_dis.c_lflag = PENDIN;
/* この PENDIN が termios.h には定義されていない。BSDや SunOS には定義されているのだが・・・。意味は、次の文字を読み込んだときに、入力キュー中の全文字を再表示する、だそうな。*/
termio_dis.c_cc[4] = 2;

ioctl(stream, TCSETA, &termio_dis);
ioctl(stream, TCFLSH, 2);

rs[0] = 0x72;
write(stream, rs, 1);

read(stream, rd, 2);

close(stream);

-------------------------------------------------------


▼関連発言

2242:cygwin の termios.h について [TOMOYUK] 06/09
 └2269:Re:cygwin の termios.h について [n] 06/12 <

Pass 保存

早田のホームページへ
CGIROOM