Include closeout.h. (main): Use close_stdout.
[platform/upstream/coreutils.git] / src / hostid.c
1 /* print the hexadecimal identifier for the current host
2    Copyright (C) 1997, 1999 Free Software Foundation, Inc.
3
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 2, or (at your option)
7    any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, write to the Free Software Foundation,
16    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17
18 /* Written by Jim Meyering.  */
19
20 #include <config.h>
21 #include <stdio.h>
22 #include <sys/types.h>
23 #if HAVE_UNISTD_H
24 # include <unistd.h>
25 #endif
26
27 #include "system.h"
28 #include "closeout.h"
29 #include "long-options.h"
30 #include "error.h"
31
32 /* The name this program was run with, for error messages. */
33 char *program_name;
34
35 static void
36 usage (int status)
37 {
38   if (status != 0)
39     fprintf (stderr, _("Try `%s --help' for more information.\n"),
40              program_name);
41   else
42     {
43       printf (_("Usage: %s [-v]\n"), program_name);
44       printf (_("\
45 Print the numeric identifier (in hexadecimal) for the current host.\n\
46 \n\
47       --help       display this help and exit\n\
48       --version    output version information and exit\n\
49 \n\
50 "));
51       puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
52     }
53   exit (status);
54 }
55
56 int
57 main (int argc, char **argv)
58 {
59   long int id;
60
61   program_name = argv[0];
62   setlocale (LC_ALL, "");
63   bindtextdomain (PACKAGE, LOCALEDIR);
64   textdomain (PACKAGE);
65
66   parse_long_options (argc, argv, "hostid", GNU_PACKAGE, VERSION, usage);
67
68   if (argc > 1)
69     {
70       error (0, 0, _("too many arguments"));
71       usage (1);
72     }
73
74   id = gethostid ();
75   printf ("%lx\n", id);
76
77   close_stdout ();
78
79   exit (EXIT_SUCCESS);
80 }