"Jens B. Jorgensen" <[EMAIL PROTECTED]> writes: > Carey Evans wrote:
[...] > > I think it's generally necessary to do O_RDWR|O_NONBLOCK to open a > > disconnected serial port, then set CLOCAL with termios, and finally > > turn off O_NONBLOCK with fcntl. Of course, for just setting the speed > > it should be enough to change the open(). > > Oh really? You need O_NONBLOCK eh? Why don't you put your compiler where your > speculation is and > compile/run the attached program. OK. I had to make one small change because I don't have a ttyS0, but I do have a modem on ttyS1. % make testsp cc testsp.c -o testsp % strace ./testsp execve("./testsp", ["./testsp"], [/* 31 vars */]) = 0 ... open("/dev/ttyS1", O_RDWR It stops at this point, with "TR" lit on my modem. If I happened to have my modem set to auto-answer, and something connected, *then* the open() would complete. If I already had something on there that had set CLOCAL, like mgetty, it would have run through. BTW: % strace ./testsp2 ... open("/dev/ttyS1", O_RDWR|O_NONBLOCK) = 3 ioctl(3, TCGETS, {0x1002 /* B??? */ -opost -isig -icanon -echo ...}) = 0 ioctl(3, SNDCTL_TMR_START, {B9600 -opost -isig -icanon -echo ...}) = 0 close(3) = 0 _exit(0) = ? -- Carey Evans http://home.clear.net.nz/pages/c.evans/ GNU GPL: "The Source will be with you... always." -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED] .