ctrlaltdel.c - ubase - suckless linux base utils
(HTM) git clone git://git.suckless.org/ubase
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
ctrlaltdel.c (655B)
---
1 /* See LICENSE file for copyright and license details. */
2 #include <sys/syscall.h>
3
4 #include <stdio.h>
5 #include <unistd.h>
6
7 #include "reboot.h"
8 #include "util.h"
9
10 static void
11 usage(void)
12 {
13 eprintf("usage: %s -h | -s\n", argv0);
14 }
15
16 int
17 main(int argc, char *argv[])
18 {
19 int hflag = 0, sflag = 0, cmd;
20
21 ARGBEGIN {
22 case 'h':
23 hflag = 1;
24 break;
25 case 's':
26 sflag = 1;
27 break;
28 default:
29 usage();
30 } ARGEND;
31
32 if (argc || !(hflag ^ sflag))
33 usage();
34
35 cmd = hflag ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
36
37 if (syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
38 cmd, NULL) < 0)
39 eprintf("reboot:");
40
41 return 0;
42 }