Standardize on the vi editing directives being on the first line.
[oweals/busybox.git] / console-tools / chvt.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Mini chvt implementation for busybox
4  *
5  * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6  *
7  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8  */
9
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <fcntl.h>
13 #include <sys/types.h>
14 #include <sys/ioctl.h>
15 #include "busybox.h"
16
17 /* From <linux/vt.h> */
18 enum {
19         VT_ACTIVATE = 0x5606,   /* make vt active */
20         VT_WAITACTIVE = 0x5607  /* wait for vt active */
21 };
22
23 int chvt_main(int argc, char **argv)
24 {
25         int fd, num;
26
27         if (argc != 2) {
28                 bb_show_usage();
29         }
30
31         fd = get_console_fd();
32         num =  bb_xgetlarg(argv[1], 10, 0, INT_MAX);
33         if ((-1 == ioctl(fd, VT_ACTIVATE, num))
34         || (-1 == ioctl(fd, VT_WAITACTIVE, num))) {
35                 bb_perror_msg_and_die("ioctl");
36         }
37         return EXIT_SUCCESS;
38 }