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