fd = get_console_fd();
num = bb_xgetlarg(argv[1], 10, 0, INT_MAX);
- if (ioctl(fd, VT_ACTIVATE, num)) {
- bb_perror_msg_and_die("VT_ACTIVATE");
- }
- if (ioctl(fd, VT_WAITACTIVE, num)) {
- bb_perror_msg_and_die("VT_WAITACTIVE");
+ if((-1 == ioctl(fd, VT_ACTIVATE, num)) ||
+ (-1 == ioctl(fd, VT_WAITACTIVE, num))) {
+ bb_perror_msg_and_die("ioctl");
}
return EXIT_SUCCESS;
}
case 2:
if((num = bb_xgetlarg(argv[1], 10, 0, INT_MAX)) == 0)
bb_error_msg_and_die("0: illegal VT number");
- /* Falltrough */
+ /* Fallthrough */
case 1:
break;
default:
bb_show_usage();
}
- if (ioctl( get_console_fd(), VT_DISALLOCATE, num )) {
+ if (-1 == ioctl( get_console_fd(), VT_DISALLOCATE, num )) {
bb_perror_msg_and_die("VT_DISALLOCATE");
}
return EXIT_SUCCESS;
fd = bb_xopen(vtname, O_RDWR);
/* Reassign stdout and sterr */
- close(1);
- close(2);
- dup(fd);
- dup(fd);
+ dup2(fd, STDOUT_FILENO);
+ dup2(fd, STDERR_FILENO);
execvp(argv[0], argv);
_exit(1);
int setconsole_main(int argc, char **argv)
{
- int con;
unsigned long flags;
- const char *device = "/dev/tty";
+ const char *device = CURRENT_TTY;
bb_applet_long_options = setconsole_long_options;
flags = bb_getopt_ulflags(argc, argv, "r");
device = argv[optind];
} else {
if (flags & OPT_SETCONS_RESET)
- device = "/dev/console";
+ device = CONSOLE_DEV;
}
- if (-1 == (con = open(device, O_RDONLY))) {
- bb_perror_msg_and_die("open %s", device);
- }
- if (-1 == ioctl(con, TIOCCONS)) {
- bb_perror_msg_and_die("ioctl TIOCCONS");
+ if (-1 == ioctl(bb_xopen(device, O_RDONLY), TIOCCONS)) {
+ bb_perror_msg_and_die("TIOCCONS");
}
return EXIT_SUCCESS;
}