minor fixes
[unix-history] / usr / src / sbin / mknod / mknod.c
CommitLineData
63e3f3c6
KM
1#ifndef lint
2static char *sccsid = "@(#)mknod.c 4.2 (Berkeley) %G%";
3#endif not lint
4
5#include <stdio.h>
6
f20a0651 7main(argc, argv)
63e3f3c6
KM
8 int argc;
9 char **argv;
f20a0651
BJ
10{
11 int m, a, b;
12
13 if(argc != 5) {
14 printf("arg count\n");
15 goto usage;
16 }
17 if(*argv[2] == 'b')
18 m = 060666; else
19 if(*argv[2] == 'c')
20 m = 020666; else
21 goto usage;
22 a = number(argv[3]);
23 if(a < 0)
24 goto usage;
25 b = number(argv[4]);
26 if(b < 0)
27 goto usage;
63e3f3c6
KM
28 if(mknod(argv[1], m, (a<<8)|b) < 0) {
29 fprintf(stderr, "mknod: ");
30 perror(argv[1]);
31 }
f20a0651
BJ
32 exit(0);
33
34usage:
35 printf("usage: mknod name b/c major minor\n");
36}
37
38number(s)
39char *s;
40{
41 int n, c;
42
43 n = 0;
44 while(c = *s++) {
45 if(c<'0' || c>'9')
46 return(-1);
47 n = n*10 + c-'0';
48 }
49 return(n);
50}