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 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