* archival/bunzip2.c (bunzip2_main): Do not remove files if writing to standard
[oweals/busybox.git] / coreutils / mknod.c
index caa234f1fedba82b816cb1cf889645a9300b6c42..10d026ce33bc941fa461aa56f50f30217a92b3e8 100644 (file)
@@ -3,6 +3,7 @@
  * Mini mknod implementation for busybox
  *
  * Copyright (C) 1995, 1996 by Bruce Perens <bruce@pixar.com>.
+ * Copyright (C) 1999-2002 by Erik Andersen <andersee@debian.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  */
 
-#include "internal.h"
 #include <stdio.h>
 #include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
-
-static const char mknod_usage[] = "mknod [OPTIONS] NAME TYPE MAJOR MINOR\n\n"
-       "Create a special file (block, character, or pipe).\n\n"
-       "Options:\n"
-       "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n"
-       "TYPEs include:\n"
-       "\tb:\tMake a block (buffered) device.\n"
-       "\tc or u:\tMake a character (un-buffered) device.\n"
-       "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n";
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include "busybox.h"
 
 int mknod_main(int argc, char **argv)
 {
@@ -61,13 +54,13 @@ int mknod_main(int argc, char **argv)
                        umask(0);
                        break;
                default:
-                       usage(mknod_usage);
+                       show_usage();
                }
                argc--;
                argv++;
        }
        if (argc != 4 && argc != 2) {
-               usage(mknod_usage);
+               show_usage();
        }
        switch (argv[1][0]) {
        case 'c':
@@ -80,11 +73,11 @@ int mknod_main(int argc, char **argv)
        case 'p':
                mode = S_IFIFO;
                if (argc!=2) {
-                       usage(mknod_usage);
+                       show_usage();
                }
                break;
        default:
-               usage(mknod_usage);
+               show_usage();
        }
 
        if (mode == S_IFCHR || mode == S_IFBLK) {
@@ -94,7 +87,7 @@ int mknod_main(int argc, char **argv)
        mode |= perm;
 
        if (mknod(argv[0], mode, dev) != 0)
-               fatalError("%s: %s\n", argv[0], strerror(errno));
-       exit (TRUE);
+               perror_msg_and_die("%s", argv[0]);
+       return EXIT_SUCCESS;
 }