xref: /original-bsd/sbin/mknod/mknod.c (revision b9d18e58)
1 #ifndef lint
2 static char *sccsid = "@(#)mknod.c	4.2 (Berkeley) 08/28/85";
3 #endif not lint
4 
5 #include <stdio.h>
6 
7 main(argc, argv)
8 	int argc;
9 	char **argv;
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;
28 	if(mknod(argv[1], m, (a<<8)|b) < 0) {
29 		fprintf(stderr, "mknod: ");
30 		perror(argv[1]);
31 	}
32 	exit(0);
33 
34 usage:
35 	printf("usage: mknod name b/c major minor\n");
36 }
37 
38 number(s)
39 char *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 }
51