1 /*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * %sccs.include.redist.c%
6 *
7 * @(#)mknod.c 8.1 (Berkeley) 06/11/93
8 */
9
10 #include <sys/param.h>
11 #include <sys/stat.h>
12
13 int eval;
14
main(argc,argv)15 main(argc, argv)
16 int argc;
17 char **argv;
18 {
19 register char *p;
20 register int major, minor;
21 unsigned short mode;
22
23 if (*++argv && **argv == '-') {
24 err("no options available", 0);
25 _exit(1);
26 }
27 if (argc != 5) {
28 usage: err("usage: mknod name [b|c] major minor", 0);
29 _exit(1);
30 }
31
32 mode = 0666;
33 if (argv[1][0] == 'c')
34 mode |= S_IFCHR;
35 else if (argv[1][0] == 'b')
36 mode |= S_IFBLK;
37 else
38 goto usage;
39
40 for (major = 0, p = argv[2]; *p; ++p)
41 major = major * 10 + *p - '0';
42 for (minor = 0, p = argv[3]; *p; ++p)
43 minor = minor * 10 + *p - '0';
44
45 if (mknod(argv[0], mode, makedev(major, minor)) < 0) {
46 err(argv[0], 1);
47 _exit(1);
48 }
49 _exit(0);
50 }
51
52 #define PROGNAME "mknod: "
53 #include "errfunction"
54