Annotation of nono/util/autoserial/serial.cpp, revision 1.1.1.1

1.1       root        1: 
                      2: #include <err.h>
                      3: #include <fcntl.h>
                      4: #include <sys/ioctl.h>
                      5: #include <stdio.h>
                      6: #include <termios.h>
                      7: #include <unistd.h>
                      8: 
                      9: int
                     10: main(int ac, char *av[])
                     11: {
                     12: 
                     13:        int fd;
                     14: 
                     15:        fd = open("/dev/dty00", O_RDWR);
                     16:        if (fd < 0) {
                     17:                err(1, "open");
                     18:        }
                     19: 
                     20:        ioctl(fd, TIOCNXCL);
                     21: 
                     22:        termios t;
                     23:        tcgetattr(fd, &t);
                     24:        fprintf(stderr, "c_iflag=%08x\n", t.c_iflag);
                     25:        fprintf(stderr, "c_oflag=%08x\n", t.c_oflag);
                     26:        fprintf(stderr, "c_cflag=%08x\n", t.c_cflag);
                     27:        fprintf(stderr, "c_lflag=%08x\n", t.c_lflag);
                     28:        cfmakeraw(&t);
                     29:        cfsetspeed(&t, B9600);
                     30:        t.c_iflag = IGNBRK;
                     31:        t.c_cflag = CREAD | CS8 | CLOCAL;
                     32:        t.c_lflag &= ~ICANON;
                     33:        t.c_cc[VTIME] = 0;
                     34:        t.c_cc[VMIN] = 1;
                     35:        tcsetattr(fd, TCSANOW, &t);
                     36:        tcgetattr(fd, &t);
                     37:        fprintf(stderr, "\nc_iflag=%08x\n", t.c_iflag);
                     38:        fprintf(stderr, "c_oflag=%08x\n", t.c_oflag);
                     39:        fprintf(stderr, "c_cflag=%08x\n", t.c_cflag);
                     40:        fprintf(stderr, "c_lflag=%08x\n", t.c_lflag);
                     41: 
                     42:        for (;;) {
                     43:                char buf[4];
                     44:                int r;
                     45: 
                     46:                int c = getchar();
                     47: 
                     48:                buf[0] = c;
                     49:                r = write(fd, buf, 1);
                     50:                if (r <= 0) {
                     51:                        err(1, "write");
                     52:                }
                     53:                r = read(fd, buf, 1);
                     54:                fprintf(stderr, "%d ", r);
                     55:                if (r < 0) {
                     56:                        err(1, "read");
                     57:                }
                     58:                if (r > 0) {
                     59:                        putchar(buf[0]);
                     60:                }
                     61:        }
                     62:        return 0;
                     63: }
                     64: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.