Subject: Re: serial port control
To: Jaromir Dolecek <dolecek@ics.muni.cz>
From: Simon J. Gerraty <sjg@quick.com.au>
List: current-users
Date: 02/11/1998 12:56:50
Jaromir Dolecek writes:
>open(2). I've looked at some sources and tried O_NONBLOCK
>option to open. Now the program doesn't block, but I can't write
>anything (Input/Ouput error on write(2)). read(2) returns without error,
>but doesn't read anything too.

If the UPS is not asserting DCD you need to either tie it to DTR or
add CLOCAL to c_cflag.  Eg:


>	tcgetattr(d, &tty);
>	cfsetspeed(&tty, 1200);
	tty.c_cflag |= CLOCAL;
	if (tcsetattr(d, &tty) < 0) {
		perror("tcsetattr");
		exit(1);
	}

note that the call to tcsetattr() is need before cfsetspeed()
has any effect.  See cfsetspeed(3).

--sjg