1*41079Swilliam /*- 2*41079Swilliam * Copyright (c) 1990 The Regents of the University of California. 3*41079Swilliam * All rights reserved. 4*41079Swilliam * 5*41079Swilliam * This code is derived from software contributed to Berkeley by 6*41079Swilliam * William Jolitz. 7*41079Swilliam * 8*41079Swilliam * %sccs.include.noredist.c% 9*41079Swilliam * 10*41079Swilliam * @(#)ls.c 7.1 (Berkeley) 04/24/90 11*41079Swilliam */ 12*41079Swilliam 13*41079Swilliam #include "../h/param.h" 14*41079Swilliam #include "../h/inode.h" 15*41079Swilliam #include "../h/fs.h" 16*41079Swilliam #undef KERNEL 17*41079Swilliam #include "../h/dir.h" 18*41079Swilliam #include "saio.h" 19*41079Swilliam 20*41079Swilliam char line[100]; 21*41079Swilliam main()22*41079Swilliammain() 23*41079Swilliam { 24*41079Swilliam int i; 25*41079Swilliam 26*41079Swilliam while (1) { 27*41079Swilliam printf("\nDirectory: "); 28*41079Swilliam gets(line); 29*41079Swilliam if ((i = open(line, 0)) < 0) 30*41079Swilliam printf("Cant open directory %s\n", line); 31*41079Swilliam else { 32*41079Swilliam ls(i); 33*41079Swilliam close(i); 34*41079Swilliam } 35*41079Swilliam } 36*41079Swilliam } 37*41079Swilliam ls(io)38*41079Swilliamls(io) 39*41079Swilliam register io; 40*41079Swilliam { 41*41079Swilliam char buf[DIRBLKSIZ]; 42*41079Swilliam register struct direct *dp; 43*41079Swilliam register off; 44*41079Swilliam 45*41079Swilliam while (read(io, buf, DIRBLKSIZ) > 0) { 46*41079Swilliam for (off = 0 ; off < DIRBLKSIZ ; off += dp->d_reclen) { 47*41079Swilliam dp = (struct direct *)(off + (int) buf); 48*41079Swilliam if (dp->d_ino == 0) 49*41079Swilliam break; 50*41079Swilliam printf("%d\t", dp->d_ino); 51*41079Swilliam printf("%s\n", dp->d_name); 52*41079Swilliam } 53*41079Swilliam } 54*41079Swilliam } 55