Add original unix v6
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
int m, a, b;
|
||||
|
||||
if(argc != 5) {
|
||||
printf("arg count\n");
|
||||
goto usage;
|
||||
}
|
||||
if(*argv[2] == 'b')
|
||||
m = 0160666; else
|
||||
if(*argv[2] == 'c')
|
||||
m = 0120666; else
|
||||
goto usage;
|
||||
a = number(argv[3]);
|
||||
if(a < 0)
|
||||
goto usage;
|
||||
b = number(argv[4]);
|
||||
if(b < 0)
|
||||
goto usage;
|
||||
if(mknod(argv[1], m, (a<<8)|b) < 0)
|
||||
perror("mknod");
|
||||
exit();
|
||||
|
||||
usage:
|
||||
printf("usage: mknod name b/c major minor\n");
|
||||
}
|
||||
|
||||
number(s)
|
||||
char *s;
|
||||
{
|
||||
int n, c;
|
||||
|
||||
n = 0;
|
||||
while(c = *s++) {
|
||||
if(c<'0' || c>'9')
|
||||
return(-1);
|
||||
n = n*10 + c-'0';
|
||||
}
|
||||
return(n);
|
||||
}
|
||||
Reference in New Issue
Block a user