1/* vi: set sw=4 ts=4: */ 2/* 3 * setconsole.c - redirect system console output 4 * 5 * Copyright (C) 2004,2005 Enrik Berkhan <Enrik.Berkhan@inka.de> 6 * Copyright (C) 2008 Bernhard Reutner-Fischer 7 * 8 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 9 */ 10 11//usage:#define setconsole_trivial_usage 12//usage: "[-r" IF_FEATURE_SETCONSOLE_LONG_OPTIONS("|--reset") "] [DEVICE]" 13//usage:#define setconsole_full_usage "\n\n" 14//usage: "Redirect system console output to DEVICE (default: /dev/tty)\n" 15//usage: "\n -r Reset output to /dev/console" 16 17#include "libbb.h" 18 19int setconsole_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 20int setconsole_main(int argc UNUSED_PARAM, char **argv) 21{ 22 const char *device = CURRENT_TTY; 23 bool reset; 24 25#if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS 26 static const char setconsole_longopts[] ALIGN1 = 27 "reset\0" No_argument "r" 28 ; 29 applet_long_options = setconsole_longopts; 30#endif 31 /* at most one non-option argument */ 32 opt_complementary = "?1"; 33 reset = getopt32(argv, "r"); 34 35 argv += 1 + reset; 36 if (*argv) { 37 device = *argv; 38 } else { 39 if (reset) 40 device = DEV_CONSOLE; 41 } 42 43 xioctl(xopen(device, O_WRONLY), TIOCCONS, NULL); 44 return EXIT_SUCCESS; 45} 46