1/* vi: set sw=4 ts=4: */ 2/* 3 * Mini hostid implementation for busybox 4 * 5 * Copyright (C) 2000 Edward Betts <edward@debian.org>. 6 * 7 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 8 */ 9//config:config HOSTID 10//config: bool "hostid (247 bytes)" 11//config: default y 12//config: help 13//config: hostid prints the numeric identifier (in hexadecimal) for 14//config: the current host. 15 16//applet:IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid)) 17 18//kbuild:lib-$(CONFIG_HOSTID) += hostid.o 19 20/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ 21 22//usage:#define hostid_trivial_usage 23//usage: "" 24//usage:#define hostid_full_usage "\n\n" 25//usage: "Print out a unique 32-bit identifier for the machine" 26 27#include "libbb.h" 28 29/* This is a NOFORK applet. Be very careful! */ 30 31int hostid_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 32int hostid_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) 33{ 34 if (argv[1]) { 35 bb_show_usage(); 36 } 37 38 /* POSIX says gethostid returns a "32-bit identifier" */ 39 printf("%08x\n", (unsigned)(uint32_t)gethostid()); 40 41 return fflush_all(); 42} 43