On Wed, 15 Jun 2005, snort Snort wrote: > The following ttys0 code freezes 5.4 release-p1 badly: I can reproduce no freeze of the system. The open of a /dev/tty* device blocks until carrier is raised on the line, so the process will block until I connect a null-modem cable to the port and start up a comm program on another host. Since you are trying to communicate with a modem, you want to open /dev/cuaa0 (or /dev/cuaD0 on -CURRENT). cua* doesn't block on carrier. > #include <stdio.h> /* Standard input/output > definitions */ > #include <string.h> /* String function definitions */ > #include <unistd.h> /* UNIX standard function > definitions */ > #include <fcntl.h> /* File control definitions */ > #include <errno.h> /* Error number definitions */ > #include <termios.h> /* POSIX terminal control > definitions */ > > /* > * 'open_port()' - Open serial port 1. > * > * Returns the file descriptor on success or -1 on > error. > */ > > int > open_port(void) > { > int fd; /* File descriptor for the port */ > > > fd = open("/dev/ttyd0", O_RDWR | O_NOCTTY | O_NDELAY); > if (fd == -1) > { > /* > could not open the port. > */ > > perror("open_port: Unable to open /dev/ttyS0 - "); > } > else > fcntl(fd, F_SETFL, 0); > return (fd); > } > > int > write_port(int fd) > { > int n = write(fd, "ATZ\r", 4); > if (n < 0) { > fputs("write() of 4 bytes failed!\n", stderr); > return 0; > } > return n; > } > > void > read_port(int fd) > { > fcntl(fd, F_SETFL, FNDELAY); > //fcntl(fd, F_SETFL, 0); > } > > void > close_port(int fd) > { > close(fd); > } > > int main() > { > int fd = open_port(); > if (write_port(fd) < 0) > return 1; > read_port(fd); > close_port(fd); > } > > Dose anyone know what is problem and how to fix it? > > Thanks > Sam > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > _______________________________________________ > freebsd-current_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org" > -- Doug White | FreeBSD: The Power to Serve dwhite_at_gumbysoft.com | www.FreeBSD.orgReceived on Sun Jun 19 2005 - 23:07:55 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:37 UTC