int serial_open(const char *device, int baudrate, int hwflow) { int fd; int ret; struct stat s; fd = open(device, O_RDWR); if (fd < 0) return fd; fstat(fd, &s); if (S_ISCHR(s.st_mode)) { ret = serial_set_rate(fd, baudrate, hwflow); if (ret) { close(fd); fd = ret; } } return fd; }
int serial_open(const char *device, int baudrate, int hwflow) { int fd; int ret; struct stat s; printf("Opening serial device %s, hang check ... ", device); fd = open(device, O_RDWR); printf("return 0x%02x\n", fd); if (fd < 0) return fd; fstat(fd, &s); if (S_ISCHR(s.st_mode)) { ret = serial_set_rate(fd, baudrate, hwflow); if (ret) { close(fd); fd = ret; } } return fd; }