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 }