From owner-FreeBSD-net-jp@jp.freebsd.org  Mon Jun 19 18:28:35 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id SAA86631;
	Mon, 19 Jun 2000 18:28:35 +0900 (JST)
	(envelope-from owner-FreeBSD-net-jp@jp.FreeBSD.org)
Received: from osinw1.osiplus.co.jp (mailhost.osiplus.co.jp [203.141.170.3])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id SAA86626
	for <FreeBSD-net-jp@jp.freebsd.org>; Mon, 19 Jun 2000 18:28:34 +0900 (JST)
	(envelope-from akihiko@osinw1.osiplus.co.jp)
Received: from blackmarlin.osiplus.co.jp (nishitani_6 [172.16.16.6])
	by osinw1.osiplus.co.jp (8.9.1/3.7WOSI+ 10/14/98) with SMTP id SAA06193
	for <FreeBSD-net-jp@jp.freebsd.org>; Mon, 19 Jun 2000 18:27:53 +0900 (JST)
Message-Id: <200006190932.AA00348@blackmarlin.osiplus.co.jp>
From: Akihiko Nishitani <akihiko@osinw1.osiplus.co.jp>
Date: Mon, 19 Jun 2000 18:32:10 +0900
To: FreeBSD-net-jp@jp.freebsd.org
MIME-Version: 1.0
X-Mailer: AL-Mail32 Version 1.11
Content-Type: text/plain; charset=iso-2022-jp
Reply-To: FreeBSD-net-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-net-jp 2639
Subject: [FreeBSD-net-jp 2639] select()=?ISO-2022-JP?B?GyRCJHIbKEI=?=
 =?ISO-2022-JP?B?GyRCO0hNUSQ3GyhC?= 232c
 =?ISO-2022-JP?B?GyRCJV0hPCVIJHI0RjtrJDclRyE8JT8kckZJJF8bKEI=?=
 =?ISO-2022-JP?B?GyRCOX4kYEp9SyEbKEI=?= 
Errors-To: owner-FreeBSD-net-jp@jp.freebsd.org
Sender: owner-FreeBSD-net-jp@jp.freebsd.org
X-Originator: akihiko@osinw1.osiplus.co.jp

$B@>C+$H?=$7$^$9!#(B
$B59$7$/$*4j$$$$$?$7$^$9!#(B

FreeBSD3.4$B>e$K$*$1$k(BC$B%W%m%0%i%`$G!"(BRS232C$B$r;HMQ$7$F2<5-%Q%i%a%?$GDL?.$7$F$$$^$9!#(B

$BDL?.B.EY!'#1#9#2#0#0#b#p#s(B
$B%-%c%i%/%?D9!'#8#b#i#t(B
$B%Q%j%F%#%S%C%H!'L5$7(B
$B%9%H%C%W%S%C%H!'(B1bit
$B%U%m!<@)8f!'L5(B
$BAw?.2~9T%3!<%I!'#L#F(B

$B8=:_;d$N:n@.$7$F$$$k%W%m%0%i%`$G$O!"(Bselect()$B$r;H$C$FAj<j$+$i(B232C$B%]!<%H$K%G!<%?$,E~Ce$9$k$N$r4F;k$7$F$$$^(B
$B$9!#(B
$B$G$9$,!"Aj<j$+$i(B"abc[LF]"$B$H$$$&%G!<%?$r$3$N%W%m%0%i%`$K(B232C$B$r2p$7$FAw$C$?>l9g!"2s@~>e$O(B"abc[LF]"$B$N%G!<%?$,(B
$BN.$l$F$$$k$N$G$9$,!":G8e$N(BLF$B$^$G<u?.$7$J$$$H(Bselect()$B$,(B232C$B%]!<%H$X$N%G!<%?<u?.!JFI9~2D!K$r8!=P$7$F$/$l$^$;(B
$B$s!#:G=i$N(B"a"$B$,E~Ce$7$?;~E@$G%j%"%k%?%$%`$K$=$N(B"a"$B$r#1J8;z(Bread$B$7$?$$$N$G$9!#(B
$B$I$J$?$+$=$N%3!<%G%#%s%0J}K!$r$4B8$8$NJ}$,$$$i$C$7$c$$$^$7$?$i65$($F$$$?$@$1$J$$$G$7$g$&$+!)!#(B
$B0J2<$K(B232c$B%]!<%H$N%*!<%W%s4X?t$H(Bselect()$B$r;HMQ$7$F$$$k(Bmain$B4X?t$r<($7$^$9!#(B
$B$I$&$>59$7$/$*4j$$$$$?$7$^$9!#(B

int	FD232c;

int openTty( char* ttyname )
{
	struct termios	tty;
	int		r;

	if(( FD232c = open( ttyname, O_RDWR | O_NDELAY | O_NONBLOCK, 0477 )) >= 0 ) {
		if( tcgetattr(FD232c, &tty) < 0 ) {
			perror( "tcgetattr" );
			exit( 1 );
		}

		cfmakeraw( &tty );/* raw mode ($B2~9T(B = LF) */
		tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; /* 8 bit char */
		tty.c_cflag &= ~CSTOPB; /* 1 stop bit */
		tty.c_cflag &= ~PARENB; /* parity none */
		tty.c_cflag &= ~(CCTS_OFLOW | CRTS_IFLOW); /* hard flow off */
		tty.c_iflag &= ~(IXON | IXOFF); /* X flow off */

		if( cfsetspeed(&tty, B19200) < 0 ) {
			perror( "cfsetospeed" );
			exit( 1 );
		}

		tcflush( FD232c, TCIFLUSH );

		if( tcsetattr(FD232c, TCSANOW, &tty) < 0 ) {
			perror( "tcsetattr" );
			exit( 1 );
		}
	}

	return( 1 );
}

void main()
{
	u_char		exitFlag = 0;
	fd_set		read_fds;
	char		buf[128];

	openTty();
	do {
		int	selectRtn;

		/*----- fds NULL clear -----*/
		FD_ZERO( &read_fds );
		FD_SET( FD232c, &read_fds );

		if( (selectRtn = select(FD_SETSIZE,
					 &read_fds,
					  (fd_set *)0,
					   (fd_set *)0,
					    0
				)) < 0 ) {

			continue;
		}
		if( FD_ISSET( FD232c, &read_fds) ) {
			if( read( FD232c, buf, 1 ) > 0 ) {
				fprintf( stderr, "data recv.\n" );
			}
		}
	} while( !exitFlag );
}
