void ask_dev(char *dbuf, const char *msg) { char buf[DEV_NAME_LEN]; int len; clear(); unset_tty(); if (msg) printf("%s\n", msg); if (dbuf) printf("Enter device name [%s]:", dbuf); else printf("Enter device name:"); if (fgets(buf, DEV_NAME_LEN - 1, stdin)) { len = strlen(buf); if (buf[len - 1] == '\n') buf[len - 1] = '\0'; if (buf[0] != '\0' && buf[0] != ' ') strcpy(dbuf, buf); } set_tty(); }
static void cleanup(int signo __unused) { if (opt_timestamp) timestamp("Logging Exited."); close(snp_io); unset_tty(); exit(EX_OK); }
static void fatal(int error, const char *buf) { unset_tty(); if (buf) errx(error, "fatal: %s", buf); else exit(error); }
/* closes the rs232 window again */ void rs232_close(int fd) { #ifdef DEBUG log_debug(rs232_log, "close(fd=%d).", fd); #endif if (fd < 0 || fd >= RS232_NUM_DEVICES) { log_error(rs232_log, "Attempt to close invalid fd %d.", fd); return; } if (!fds[fd].inuse) { log_error(rs232_log, "Attempt to close non-open fd %d.", fd); return; } if (fds[fd].type == T_TTY) { unset_tty(fd); } close(fds[fd].fd_r); if ((fds[fd].type == T_PROC) && (fds[fd].fd_r != fds[fd].fd_w)) { close(fds[fd].fd_w); } fds[fd].inuse = 0; }