More Doc updates. cmdedit and more termio fixes.
[oweals/busybox.git] / console-tools / chvt.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * chvt.c - aeb - 940227 - Change virtual terminal
4  *
5  * busyboxed by Erik Andersen
6  */
7 #include "internal.h"
8 #include <sys/types.h>
9 #include <sys/ioctl.h>
10 #include <linux/vt.h>
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <fcntl.h>
14
15 extern int getfd(void);
16
17 int chvt_main(int argc, char **argv)
18 {
19         int fd, num;
20
21         if ((argc != 2) || (**(argv + 1) == '-')) {
22                 usage ("chvt N\n"
23 #ifndef BB_FEATURE_TRIVIAL_HELP
24                                 "\nChanges the foreground virtual terminal to /dev/ttyN\n"
25 #endif
26                                 );
27         }
28         fd = get_console_fd("/dev/console");
29         num = atoi(argv[1]);
30         if (ioctl(fd, VT_ACTIVATE, num)) {
31                 perror("VT_ACTIVATE");
32                 exit(FALSE);
33         }
34         if (ioctl(fd, VT_WAITACTIVE, num)) {
35                 perror("VT_WAITACTIVE");
36                 exit(FALSE);
37         }
38         exit(TRUE);
39 }
40
41
42 /*
43 Local Variables:
44 c-file-style: "linux"
45 c-basic-offset: 4
46 tab-width: 4
47 End:
48 */