1*24467Smckusick #ifndef lint 2*24467Smckusick static char *sccsid = "@(#)mknod.c 4.2 (Berkeley) 08/28/85"; 3*24467Smckusick #endif not lint 4*24467Smckusick 5*24467Smckusick #include <stdio.h> 6*24467Smckusick 71053Sbill main(argc, argv) 8*24467Smckusick int argc; 9*24467Smckusick char **argv; 101053Sbill { 111053Sbill int m, a, b; 121053Sbill 131053Sbill if(argc != 5) { 141053Sbill printf("arg count\n"); 151053Sbill goto usage; 161053Sbill } 171053Sbill if(*argv[2] == 'b') 181053Sbill m = 060666; else 191053Sbill if(*argv[2] == 'c') 201053Sbill m = 020666; else 211053Sbill goto usage; 221053Sbill a = number(argv[3]); 231053Sbill if(a < 0) 241053Sbill goto usage; 251053Sbill b = number(argv[4]); 261053Sbill if(b < 0) 271053Sbill goto usage; 28*24467Smckusick if(mknod(argv[1], m, (a<<8)|b) < 0) { 29*24467Smckusick fprintf(stderr, "mknod: "); 30*24467Smckusick perror(argv[1]); 31*24467Smckusick } 321053Sbill exit(0); 331053Sbill 341053Sbill usage: 351053Sbill printf("usage: mknod name b/c major minor\n"); 361053Sbill } 371053Sbill 381053Sbill number(s) 391053Sbill char *s; 401053Sbill { 411053Sbill int n, c; 421053Sbill 431053Sbill n = 0; 441053Sbill while(c = *s++) { 451053Sbill if(c<'0' || c>'9') 461053Sbill return(-1); 471053Sbill n = n*10 + c-'0'; 481053Sbill } 491053Sbill return(n); 501053Sbill } 51