xref: /original-bsd/sbin/mknod/mknod.c (revision 552e81d8)
1 static char *sccsid = "@(#)mknod.c	4.1 (Berkeley) 10/01/80";
2 main(argc, argv)
3 int argc;
4 char **argv;
5 {
6 	int m, a, b;
7 
8 	if(argc != 5) {
9 		printf("arg count\n");
10 		goto usage;
11 	}
12 	if(*argv[2] == 'b')
13 		m = 060666; else
14 	if(*argv[2] == 'c')
15 		m = 020666; else
16 		goto usage;
17 	a = number(argv[3]);
18 	if(a < 0)
19 		goto usage;
20 	b = number(argv[4]);
21 	if(b < 0)
22 		goto usage;
23 	if(mknod(argv[1], m, (a<<8)|b) < 0)
24 		perror("mknod");
25 	exit(0);
26 
27 usage:
28 	printf("usage: mknod name b/c major minor\n");
29 }
30 
31 number(s)
32 char *s;
33 {
34 	int n, c;
35 
36 	n = 0;
37 	while(c = *s++) {
38 		if(c<'0' || c>'9')
39 			return(-1);
40 		n = n*10 + c-'0';
41 	}
42 	return(n);
43 }
44