ctrlaltdel.c - ubase - suckless linux base utils | |
git clone git://git.suckless.org/ubase | |
Log | |
Files | |
Refs | |
README | |
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_MAGIC… | |
38 cmd, NULL) < 0) | |
39 eprintf("reboot:"); | |
40 | |
41 return 0; | |
42 } |